OS | IP | Nginx版本 | Nginx安装路径 |
Debian 6 (Linux Kernel 2.6.32) | 192.168.61.251 | 1.2.3 | /usr/local/nginx |
1. Nginx在Linux下的安装
a) 解压:
# tar zxvf nginx-1.2.3.tar.gz
b) 配置、编译、安装:
# ./configure –prefix=/usr/local/nginx
# make && make install
说明:
1) 若安装前要添加其他模块或配置,请使用./configure –help查看./configure命令的参数并酌情进行配置
2) 配置完成后的文件路径:
启动文件:/usr/local/nginx/sbin/nginx
配置文件:/usr/local/nginx/conf/nginx.conf
2. Nginx启动、停止、平滑重启
a) 启动
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
说明:如果不指定参数c,即配置文件路径,默认会到nginx安装路径下查找(针对本文,nginx配置文件路径为:/usr/local/nginx/conf/nginx.conf)
b) 停止
两种方式:
1) 通过pid文件(pid文件默认路径/usr/local/nginx/logs/nginx.pid,里面存放nginx的主进程id)
# kill - QUIT `/usr/local/nginx/logs/nginx.pid` --这是从容停止nginx
# kill - TERM `/usr/local/nginx/logs/nginx.pid` --这是快速停止nginx
2) 通过进程名称停止nginx
# pkill -9 nginx --强制停止所有nginx进程
c) 平滑重启
1) 首先检查nginx配置文件是否被正确配置
# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
若出错,会打印出错行数,若正确,则出现OK字样
2) 平滑重启
kill -HUP `/usr/local/nginx/logs/nginx.pid`
说明:当Nginx接收到HUP信号时,会尝试先解析配置文件,若解析成功,就应用新的配置文件,之后,nginx运行新的工作进程并从容关闭旧的工作进程。
通知工作进程关闭监听套接字,但是继续为当前连接的客户端提供服务,所有客户端服务完成后,旧的工作进程被关闭,如果新的配置文件应用失败,
nginx将继续使用旧的配置文件进行工作
3. Nginx的信号控制
TERM, INT --快速关闭
QUIT --从容关闭
HUP --平滑重启
USR1 --重新打开日志文件,在切割日志时用途较大
USR2 --平滑升级可执行程序
WINCH --从容关闭工作进程
4. Nginx的平滑升级
a) 使用新的可执行程序替换旧的可执行程序,将新nginx编译安装到旧nginx安装路径中,替换职前,最好备份
b) 发送替换命令:
# kill - USR2 旧版本的nginx主进程号
即: # kill - USR2 `/usr/local/nginx/logs/nginx.pid`
这样nginx将重命名旧的nginx.pid为nginx.pid.oldbin,并依次启动新的主进程和新的工作进程
此时新旧版本nginx同时运行,要关闭旧版本nginx进程,发送命令:kill -WINCH 旧版本的主进程号
即:kill - WINCH `/usr/local/nginx/logs/nginx.pid.oldbin`
这样一段时间后,旧的工作进程处理了所有已连接的请求后退出,仅留下新的nginx进程来处理请求