一, nginx命令行
格式:nginx –s reload
帮助:-? -h
使用指定的配置文件: -c
指定配置指令: -g
指定运行目录:-p
发送信号:-s
测试配置文件是否由语法错误:-t –T
版本信息:-v –V
立刻停止服务:stop
优雅的停止服务:quit
重载配置文件:reload
重新开始记录日志文件:reopen
2,演示
(1) 重载配置文件
修改配置文件nginx.conf后,执行 nginx –s reload这样会在不停止服务的情况下使用了新的配置项
(2) 热部署
更新是只更换二进制文件
cp nginx nginx.old
然后将新下载的nginx文件放到sbin目录下
给nginx的master进程发送信号
kill –USR2 13195(master进程的进程号),这样master进程会新启一个master进程,新的master进程使用了我们刚刚复制过来的新的nginx二进制文件,老的worker也在运行,新的master运行新的worker,他们会平滑的过度请求,现在发现老的worker进程已经在监听80或者43端口了,新的请求会进入新的nginx进程中,这是我们需要行老的进程发送信号,告诉他优雅的关闭所有的worker进程
Kill –WINCH 13195
在上面的结果中,我们也能看到老的master进程是一直存在,在没有手工关闭前,它是不会自已关闭的,这种设计是为了升级新版本后,如果出现问题能及时快速的回滚到上一个稳定版本。
(3) 日志切割
在nginx运行的情况下,日志切换
先将原来的保存
mv accecc.log bak.log
重新开始记录
…/sbin/nginx –s reopen
3,语法
1,配置文件由指令和指令块构成
2,每条指令以分号结束,指令与参数间以空格分隔
3,指令块用大括号将多条指定组织在一起
4,include语句允许组织多个配置文件以提高可维护性
5,使用#可添加注释,提高可读性
6,用$符号使用变量
7,部分指令的参数支持正则表达式
8,配置参数
时间:
Ms,s,m,h,d,w
空间:
无(bytes),k,m,g
9,四种指令块
http,location,server,upstream
比如http指令块里的表示都用http模块去解析执行的