nginx基本运维及常用配置
nginx基本运维及常用配置
==========================================================
基本运维
nginx 的启动
nginx -c /path/to/nginx.conf
nginx 的重启
重新加载配置
nginx -s reload
重新打开日志文件
nginx -s reopen
平滑重启
kill -HUP 主进程号
nginx 的停止
从容停止
kill -QUIT 主进程号
快速停止
kill -TERM 主进程号
强制停止
kill -9 主进程号
nginx 检测配置是否正确
nginx -t
nginx 升级
1.先用新程序替换旧程序文件
2.kill -USR2 旧版程序的主进程号。旧进程自动重命名
3.执行新版二进制程序。两个进程同时处理请求。
4.kill -WINCH 旧版本主进程号。此时旧进程不在接收请求,尽有新进程处理
下面,则可以通过观察是否运行正常选择保留新进程还是旧进程。
保留旧进程:
1.kill -HUP 旧的主进程号
2.kill -QUIT 新的主进程号
保留新进程:
1.kill -QUIT 旧的主进程号
常用指令
break指令
语法:break
默认值:none
使用字段:server, location, if
作用:完成当前设置的重写规则,停止行其他的重写规则。
if 块
语法:if (condition) { … } 默认值:none 使用字段:server, location
注意:尽量考虑使用trp_files代替。
条件遵循正则及bash样式
return 块
语法: return code 默认值:none 使用字段: server, location, if 作用:停止处理并为客户端返回状态码。
set 块
语法:set variable value 默认值:none 使用字段:server, location, if 作用:为给定的变量设置一个特定值。
rewrite 块
语法:rewrite regex replacement flag 默认值:none 使用字段:server, location, if 作用:按照相关的正则表达式与字符串修改URI,指令按照在配置文件中出现的顺序执行。可以在重写指令后面添加标记。
注意:rewrite根据相关变量重定向和选择不同的配置,从一个location跳转到另一个location,不过这样的循环最多可以执行10次,超过后nginx将返回500错误。同时,重写模块包含set指令,来创建新的变量并设其值,这在有些情景下非常有用的,如记录条件标识、传递参数到其他location、记录做了什么等等。
实例:
server {
location / {
# 用单引号引起来, 避免{}
rewrite '^/images/([a-z]{2})/(.*)\.(png|jpg)$' /data?file=$2.$3;
set $img_file $2;
set $img_tpye $3;
}
}
参考文献1:Nginx的基本运维
参考文献2:Nginx运维笔记2