nginx的安装
- nginx安装的官网在 > http://nginx.org/en/download.html
- 这里我们选取的版本号是nginx-1.16.0,右键复制其连接地址
- 此时我们打开linux操作系统,在指定位置利用wget进行安装。
[root@aubin opt]# wget http://nginx.org/download/nginx-1.16.0.tar.gz
- 上面可以看到我们将其安装到了/opt目录中
[root@aubin opt]# tar -zxvf nginx-1.16.0.tar.gz
- 对其进行编译,并设置其安装目录
[root@aubin nginx-1.16.0]# ./configure --prefix=/opt/nginx-anzhaung
- 通过上面的代码可以看到我们将其安装到了/opt/nginx-anzhaung目录中
- 执行make编译
[root@aubin nginx-1.16.0]# make
- 安装
[root@aubin nginx-1.16.0]# make install
通过上面的步骤可以看到我们已经将nginx初步安装完成,此时我们的安装路径/opt/nginx-anzhuang 文件夹下就有指定的内容。
nginx的配置语法
- 配置文件由指令与指令块构成
- 每条指令以;分号结尾,指令与参数间以空格符号分隔
- 指令块以 {} 大括号将多条指令组织在一起
- include语句允许组合多个配置文件以提升可维护性
- 使用#符号加注释
- 使用$符号使用变量
- 部分指令的参数支持正则表达式
nginx的命令行演示
- nginx的重载
- nginx的重载指的是配置文件修改后,在不重启的情况下可以使其修改后的配置文件生效
- 具体做法:
[root@aubin conf]# vim /opt/nginx-anzhaung/conf/nginx.conf
修改配置文件 tcp_nopush on; 将其注释放开
重载配置文件
[root@aubin sbin]# ./nginx -s reload
注意
(1)此时可能会报错:nginx: [error] open() “/opt/nginx-anzhaung/logs/nginx.pid” failed (2: No such file or directory)
(2)解决方案:./nginx -c /opt/nginx-anzhaung/conf/nginx.conf
此时再用./nginx -s reload就不会出错
- nginx的热部署
如果我们现在有了更新的nginx,现在我们要用最新的应该怎么办?
(1)nginx更新的只是其二进制文件,所以首先我们应该对其旧的二进制文件进行更新
[root@aubin sbin]# cp nginx nginx.old
(2)将我们最新编译好的最新的nginx的二进制文件复制过来,进行替换
(3)我们给运行的nginx的master进程发送一个信号,告诉他我们要对其进行升级了
[root@aubin sbin]# kill -USR2 13195
此时nginx会启动一个新的master进程,老的也在运行,新的nginx进程用的是最新配置的nginx二进制文件,之后的运行会将请求平滑的过度到最新的nginx进程中。
此时我们向老的nginx发送信号,关闭其所有的worker进程
[root@aubin sbin]# kill -WINCH 13195
其中13195指的是nginx的进程号。此时我们观察会发现已经没有老的worker进程了。
- nginx的日志切割
复制原有的nginx的日志
[root@aubin logs]# mv access.log access.log.bak
启动reopen命令产生新的日志文件
[root@aubin sbin]# ./nginx -s reopen
此时就会产生新的日志文件