nginx的平滑重启

2019-03-27 09:08|来源: 网络

在研发过程中,修改nginx的配置文件nginx.conf是很平常的事,需要重启nginx。如果我们直接reload是有一定风险的,我们可以通过发送系统信号给nginx主进程的方式来进行。

第一步:确认nginx配置文件的语法是否正确,否则nginx将不会加载新的配置文件。

如果出现这样的信息说明配置文件是正确的。

第二步:平滑重启

kill -HUP nginx进程号

kill -HUP ''/var/run/nginx.pid"

当nginx接收到HUP信号时,它会尝试先解析配置文件(如果指定文件,就使用指定的,否则使用默认的),如果成功,就应用新的配置文件(例如:重新打开日志文件或监听的套接字),之后,nginx运行新的工作进程并从容关闭旧的工作进程,通知工作进程关闭监听套接字,但是继续为当前连接的客户提供服务,所有客户端的服务完成后,旧的工作进程就关闭,如果新的配置文件应用失败,nginx再继续使用早的配置进行工作。

补充内容:nginx的几种信号

TERM,INT 快速关闭

QUIT 从容关闭

HUP 平滑重启,重新加载配置文件

USR1 重新打开日志文件,在切割日志时用途较大

USR2 平滑升级可执行程序

WINCH 从容关闭工作进程

 
转自:http://lobert.iteye.com/blog/1927452

相关问答

更多
  • 假设你的nginx的目录是:/usr/opt/nginx/sbin/nginx 假设nginx的目录是: /usr/opt/nginx/conf/www4.conf 重启的方法是:/usr/opt/nginx/sbin/nginx -c /usr/opt/nginx/conf/www4.conf 参数-c 指定了配置文件的路径,如果不指定该参数,则nginx会默认加载其按照目录的conf目录下的nginx.conf. 平滑重启: 1、检查修改后的配置文件是否正确: /usr/opt/nginx/sbin/n ...
  • 直接找你的服务商解决就行了,互易中国很少出现这种问题 500的错,多数是内部的,php级别居多,都是致命的错误。看了你的nginx配置,虽然不是很标准的写法,暂时没发现问题,而且nginx出现500的机率不多。具体排错要看nginx的错误日志才能说昨准。 先这样: 根据你的描述,很可能php中关于mysql的扩展未加载。试写一个测试文件,内容看看有没有关于mysql的选项。
  • 端口 已存在重起下 killall nginx /usr/local/nginx/sbin/nginx (nginx安装目录应用程序)
  • LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。 Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。 Mysql是一个小型关系型数据库管理系统。 PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。 这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩 ...
  • 假设你的nginx的目录是:/usr/opt/nginx/sbin/nginx 假设nginx的目录是: /usr/opt/nginx/conf/www4.conf 重启的方法是:/usr/opt/nginx/sbin/nginx -c /usr/opt/nginx/conf/www4.conf 参数-c 指定了配置文件的路径,如果不指定该参数,则nginx会默认加载其按照目录的conf目录下的nginx.conf. 平滑重启: 1、检查修改后的配置文件是否正确: /usr/opt/nginx/sbin/n ...
  • 回复 1# 的帖子 nginx : kill nginx进程ID,再/usr/local/nginx/sbin/nginxmysql :/etc/init.d/mysql restartphp:没有重启,phpfpm:/usr/local/php/sbin/php-fpm reload
  • 假设你的nginx的目录是:/usr/opt/nginx/sbin/nginx 假设nginx的目录是: /usr/opt/nginx/conf/www4.conf 重启的方法是:/usr/opt/nginx/sbin/nginx -c /usr/opt/nginx/conf/www4.conf 参数-c 指定了配置文件的路径,如果不指定该参数,则nginx会默认加载其按照目录的conf目录下的nginx.conf. 平滑重启: 1、检查修改后的配置文件是否正确: /usr/opt/nginx/sbin/n ...
  • 回复 2# 的帖子 不可以啊,还是不能访问新ip的网站,root@MyDebianVPS:~# /etc/init.d/nginx restartRestarting nginx daemon: nginx.
  • proxy_pass这个指令是ngx_http_proxy_module提供的,你编译的时候没编译进去。 nginx有官方仓库,如果你不需要社区维护的模块的话,建议选用官方仓库编译好的,打包进去了所有内建模块
  • workerman 能在thinkphp的框架上使用 $Gateway = new \Org\Util\Gateway('127.0.0.1:5136'); $Gateway->sendToUid(1021,json_encode(array())); 下载workerman, 放入thinkphp,注意与Home平级,就把workerman当做是一个模块。 进入Home/Controller目录,新建WorkermanController.class.php workerman和thinkphp完美结合使 ...