在配置文件中进行更改后,正常重启Nginx Web服务器
时间:2020-01-09 10:40:46 来源:igfitidea点击:
如何使nginx.conf的更改生效。
如何正常重启Nginx Web服务器?
如何在不重启Nginx服务器本身而不中断用户当前会话的情况下,对Nginx服务器配置文件进行更改以使其生效?
Nginx是一个免费的开源Web服务器,可以在Linux和类似Unix的系统上运行。
Nginx是用于静态和动态工作负载的非常快速和轻量级的服务器。
本教程显示配置更改后如何正常重启Nginx Web服务器。
如何正常重启Nginx服务
对于具有systemd的GNU/Linux,语法如下:
sudo systemctl reload nginx
对于具有sysv init的旧版Linux发行版,请尝试使用service命令:
sudo service nginx reload
当执行reload选项时,主Nginx进程将关闭子进程,加载新配置,并启动新的子进程,而不会干扰操作。
因此,我们更喜欢重载而不是重新启动。
换句话说,请勿使用以下任何Linux命令来正常重启:
sudo systemctl restart nginx
或者
sudo service nginx restart
优雅地重启Nginx Web服务器
Nginx主进程可以处理以下信号:
- TERM,INT:快速关机
- QUIT:正常关机
- KILL:停止一个顽固的过程
- HUP:重新加载配置。使用新的配置启动新的工作进程。正常关闭旧工作进程
- USR1:重新打开日志文件
- USR2:即时升级可执行
- WINCH:正常关闭工作进程
通用语法,可以在Linux或类似Unix的系统上正常重启Nginx
以root用户身份尝试以下kill命令和cat命令的组合:
sudo kill -HUP $( cat /path/to/nginx.pid )
可以使用pgrep commandor或ps命令找到nginx pid,如下所示:
pgrep nginx ps aux | grep [n]ginx
输出示例:
root 4333 0.0 0.4 70776 9352 ? Ss Nov24 0:00 nginx: master process /usr/local/nginx/sbin/nginx nginx 9921 1.0 0.5 70776 9888 ? S Dec05 19:24 nginx: worker process nginx 9922 1.0 0.5 70776 10240 ? S Dec05 19:42 nginx: worker process nginx 9923 0.0 0.4 70776 8724 ? S Dec05 0:00 nginx: cache manager process
接下来,以root用户身份执行以下命令:
kill -HUP 4333 sudo kill -HUP 4333
如果您使用的是Nginx版本0.7.53+
最新版本的Nginx使得在Unix和Linux上正常重载和重新启动Web服务变得非常容易。
您要做的就是传递-s reload选项:
# nginx -s reload
或者
# /usr/local/nginx/sbin -s reload
Debian/CentOS/RHEL/Fedora/Ubuntu Linux试用
# /etc/init.d/nginx reload
FreeBSD用户
# /usr/local/etc/rc.d/nginx reload
OpenBSD用户
# /usr/sbin/nginx -s reload
或者
# /etc/rc.d/nginx reload
如何重新加载/正常重启chroot的Nginx服务器?
执行以下命令:
# /usr/sbin/chroot /jail /usr/local/nginx/sbin/nginx -s reload
如何在Docker或LXD容器中重新加载Nginx
Docker的语法如下:
docker container exec {container_name_here} nginx -s reload
或者
docker kill -s HUP {container_name_here}
LXD用户可以执行以下命令:
lxc exec {container_name_here} -- nginx -t reload