Nginx 的启动
指定配置文件的方式启动nginx
# nginx -c /etc/nginx/nginx.conf
对于yum安装的nginx,使用systemctl命令启动
# systemctl start nginx
Nginx 的停止
从容停止
kill -QUIT Nginx主进程号
快速停止nginx
kill -TERM Nginx主进程号
强制停止所有nginx进程
pkill -9 nginx
Nginx的平滑重启
在修改了nginx配置文件后,在重启nginx之前,需要确认nginx配置文件的语法是否正确,可执行以下命令检测
# nginx -t -c /etc/nginx/nginx.conf
如上没有错误的话,就可以平滑重启了
# nginx -s reload
或者
kill -HUP Nginx主进程号
Nginx的平滑升级
对于编译安装的nginx,可以将新版本编译安装到旧版本的nginx安装路径中。替换之前,最好备份一下旧的可执行文件。
下载新版本nginx # wget http://nginx.org/download/nginx-1.9.14.tar.gz 获取旧版本nginx的configure选项 # nginx -V 编译新版本nginx # tar -zxvf nginx-1.9.14.tar.gz # cd nginx-1.9.14 # ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt=‘-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic‘ # make 备份旧版本nginx可执行文件,使用新版本nginx可执行文件替代旧的可执行文件 # mv /usr/sbin/nginx /usr/sbin/nginx.old # cp objs/nginx /usr/sbin/nginx
测试新版本nginx是否正常
nginx –t –c /etc/nginx/nginx.conf
平滑升级nginx,旧版本Nginx的pid变为oldbin,此时旧版本和新版本的nginx同时运行,共同处理完用户请求
kill -USR2 `cat /var/run/nginx.pid`
从容关闭旧版本的nginx进程
kill -WINCH `cat /var/run/nginx.oldbin`
一段时间后,旧版本的nginx进程处理了所有已连接的请求后退出,仅由新版本的nginx进程来处理输入的请求了,可以通过以下命令查看
# ps -ef | grep nginx
这时候,我们可以决定是使用新版本,还是恢复到旧版本
kill -HUP 旧的主进程号 :Nginx在不重载配置文件的情况下启动他的工作进程 kill -QUIT 新的主进程号 :从容关闭其工作进程 kill -TERM 新的主进程号 :强制退出 kill 新的主进程号或旧的主进程号:如果因为某些原因新的工作进程不能退出,则向其发送kill信号
新的主进程退出后,旧的主进程会移除 .oldbin 后缀,恢复为它 的 .pid 文件,这样,一切就恢复到升级之前了。
如果尝试升级成功,而你也希望保留新的服务器时,可发送 QUIT 信号给旧的主进程,使其退出而只留下新的服务器运行。
时间: 2024-10-13 23:24:13