nginx使用教程
本nginx是在Ubuntu20.04系统下运行的
nginx version: nginx/1.18.0 (Ubuntu)
安装:
1.安装nginx的方法直接apt install nginx就可以
我们下面来看详细配置情况
当我们安装完nginx以后,可以在/etc/nginx中找到其配置情况
nginx.conf是它的配置文件,其中引入了confd.d/下的所有.conf文件
然后它的站点配置信息由sites-enabled/default这个文件配置,拿到这个站点文件之后就可以在里面生命server{}的站点配置
2.还有另外一种安装方式,先将它的安装打包文件传到服务器中,然后解压后进入文件./configure &&make&& make install
下面有几条相关的命令
启动:nginx 或者 nginx -c /配置文件的路径
停止: nginx -s stop
重启: nginx -s reload
检查配置文件: nginx -t
查看nginx启动情况: ps -ef | grep nginx
如果出现报错
1
nginx: [error] invalid PID number "" in "/run/nginx.pid"
需要先执行
nginx -c /etc/nginx/nginx.conf
nginx.conf文件的路径可以从nginx -t的返回中找到。
nginx -s reload
如果以上没用,则直接kill调nginx里面的进程
配置文件
注:nginx的配置文件在安装后的nginx目录下的conf文件夹中
(一):刚安装好的配置文件具体如下:
1 | #user nobody; |
上述是由安装包(第二种方法安装后的配置文件)
用第一种安装后的配置文件更加解耦化,有多个文件include而成,上诉有解释。配置相关差不多。
(二)配置详解
1、根据上面的nginx配置文件,可以将nginx的配置分为以下的组成结构
1 | ... #全局快 |
2、每块的结构功能
(1)、全局块: 配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
(2)、events块: 配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接, 开启多个网络连接序列化等
(3)、http块: 可以配置多个server,配置代理、缓存、日志定义等能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
(4)、server块: 配置虚拟主机的相关参数,一个http中可以有多个server。
(5)、location块: 配置请求的路由,以及各种页面的处理情况。
3、nginx配置文件详细的解释
1 | ########### 每个指令必须有分号结束。################# |
以上都是没有成功之前的一些文案,下面是一些在配置过程中出现并且了解的知识点
在配置使用命令行进行的文件结构中
etc/nginx下面有两个主要引入的配置文件:
1.第一个是conf.d中的文件
2.第二个是site-enables中的文件,其中site-enable的文件就是对site-avalible中的文件的链接,直接对site-avalible中的文件进行修改就可以
在初始化的时候,conf.d中是没有default文件的,需要自己写相关的配置文件,这个的格式可以copy site-enables中的文件。之前一直在徘徊的问题也是这个,使用的格式一直不对。
1 | # |
如果不使用如下的情况应该可以直接在nginx中进行配置
这样直接地址加端口就能映射到整个文件了
防火墙相关代码
在linux中访问nginx,默认是不能访问的,因为防火墙问题,我们需要开放一部分端口号
查看开放的端口号:
开启防火墙
systemctl start firewalld
关闭防火墙
systemctl stop firewalld
查看端口开放情况
firewall-cmd –list-ports
开放某个特定的端口
firewall-cmd –zone=public –add-port=81/tcp –permanent
关闭某个特定的端口
firewall-cmd –remove-port=80/tcp –permanent
更改配置后重启防火墙
systemctl reload firewalld
负载均衡
1.准备工作
(1)准备两台 tomcat 服务器,一台 8080,一台 8081
(2)在两台 tomcat 里面 webapps 目录中,创建名称是 edu 文件夹,在 edu 文件夹中创建 页面 a.html,用于测试
2.在 nginx 的配置文件中进行负载均衡的配置
1 | upstream myserver { |
3.nginx 分配服务器策略
第一种 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
第二种 weight
weight 代表权重默认为 1,权重越高被分配的客户端越多
第三种 ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
第四种 fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
以后详细学习动态均衡和动静分离时继续更新