一、nginx配置语法介绍
1. 配置文件是由指令和指令块组成的
2. 每条指令以分号结尾,指令和参数间以空格分隔
3. 指令块以 {} 将多条指令组织在一起
4. incloud语句允许组合多个配置文件
5. 使用#添加注释,通过$使用变量
6. 部分指令参数支持正则
7. nginx指令块包括四个部分,http,server,location,upstream
二、nginx常用命令
# 指定配置文件启动 nginx -c nginx.conf # 查看nginx版本 nginx -v 或 nginx -V # 给进程发送信号,立刻停止、优雅退出、重载配置文件、重新创建一个文件记录日志 nginx -s stop nginx -s quit nginx -s reload nginx -s reopen # 检查配置文件语法,nginx -s reload 相当于先执行检查语法的动作,然后执行加载配置文件动作 nginx -t nginx.conf
三、nginx热升级
热升级时,只需要将替换nginx二进制文件即可
1. 将旧的nginx二进制文件备份
2. 制作新的nginx二进制文件,注意,在进行configure编译是,--prefix指定的安装路径需要和旧的nginx安装路径一致,只需要执行configure就可以了,make && make install 切记不可执行
3. 将新的nginx二进制文件拷贝到sbin目录下
4. 给旧的nginx master进程发送USR2信号,这样就会使用新的nginx二进制文件启动新的进程
5. 等到新的nginx进程启动以后,给旧的nginx进程发送WINCH信号,这样旧的nginx master进行就会关闭旧的nginx worker进程
6. 之后旧的nginx master进程还会存在,用来回滚,如果确认新的nginx进程没有问题,通过kill信号关闭旧的master进程即可
7. 如果新的nginx进程有问题,使用旧的nginx二进制文件进行回滚
mv nginx nginx.old cp new_old nginx ps -ef | grep nginx kill -USR2 $old_nginx_master_pid kill -WINCH $old_nginx_master_pid
四、nginx日志切割
日志切割需要将原先的日志文件备份,然后给nginx进行发送USR1信号或执行 nginx -s reopen命令即可
# 执行 kill -USR1 $nginx_master_pid # 或者 nginx -s reload