目录
- 一:Nginx通用语法
- 二:Nginx重载,热部署,日志分割
- 2.1: Nginx命令行
- 2.2: 命令行演示Nginx重载
- 2.3: 命令行演示Nginx热部署
- 2.4: 命令行演示Nginx日志切割
一:Nginx通用语法
- Nginx通用语法
- 配置文件由指令和指令块组成
- 指令结束用分号区分, 指令与参数之间用空格分隔
- 指令块用{}将指令进行区分
- include语句允许组合多个配置文件以提高文件的可读性
- 使用#符号添加注释, 使用$符号使用变量
- 部分指令参数支持正则表达式
- Nginx语法案例:
- 时间配置参数
- ms: 毫秒
- s: 秒
- m: 分钟
- h: 小时
- d: 天
- w: 周
- M: 月
- y: 年
- 空间配置参数
- 不写:bytes
- k/K:千字节
- m/M: 兆字节
- g/G: G字节
二:Nginx重载,热部署,日志分割
2.1: Nginx命令行
- Nginx指令案例: nginx -s reload
- 查看帮助文档:nginx -h
- 使用指定的配置文件: nginx -c 配置文件路径
- 覆盖配置文件中的配置:nginx -g 配置名称
- 指定运行目录:nginx -p 路径
- 发送信号:nginx -s 指令名称
- 停止服务信号:stop
- 优雅的停止服务信号:quit
- 重载配置文件信号:reload
- 重新开始记录日志文件信号: reopen
- 测试nginx配置文件语法:nginx -t/-T
- 查看nginx版本信息: nginx -v/-V
2.2: 命令行演示Nginx重载
- 什么是重载?
- 再不影响当前运行的情况下, 重新加载配置, 启动/卸载某些内容。
- 重载案例:
- 1: 修改nginx.conf中的配置
- 2: 执行重启nginx: nginx -s reload
2.3: 命令行演示Nginx热部署
- 什么是热部署?
- 热部署就是在不影响服务的情况下, 对nginx进行平滑的升级。
- 热部署案例:
- 1: 下载新版本的nginx, 并对新的nginx进行编译。
- 2: 用编译后的nginx文件, 替换现在正在运行的nginx文件。
- 3: 删除旧的主nginx进程, 然后重新启动一个新的nginx主进程。
- kill -USR2 nginx主进程号
- 注意:此时会有两个nginx主进程, 新的连接将访问新的nginx主进程。老的worker进程也存在, 但是不再监听80, 443端口, 而新的worker进程会监听80, 443端口。
- 4: 优雅的关闭老的worker进程
- kill -WINCH 老的nginx主进程号
- 注意: 此时老的nginx主进程不会退出, 但是worker进程会退出。
- 原因:worker进程退出, 说明旧的请求已经全部处理完了。 老的nginx主进程不会退出, 是因为新的nginx进程如果有问题, 需要重新拉起老的nginx主进程。
2.4: 命令行演示Nginx日志切割
- 复制当前的日志: cp 当前日志路径 目标日志路径
- 进行日志切割:nginx -s reopen