Nginx-3.控制nginx

原文

nginx 通过信号来控制。对应linux系统就是用kill命令。

The command kill sends the specified signal to the specified process or process group. If no signal is specified, the TERM signal is sent.

master进程id在默认写入到/nginx/logs/nginx.pid文件中。文件也可以在nginx.conf文件中指定。master进程支持以下信号:

kill -TERM `cat ./logs/nginx.pid` #快速停止master进程。
kill -QUIT `cat ./logs/nginx.pid` #优雅的停止。
kill -HUB `cat ./logs/nginx.pid` #改变配置文件。开启一个新的worker进程处理,优雅的停止老的worker 进程。相当于nginx -s reload
kill -USR1 `cat ./logs/nginx.pid` #重新打开log文件。-s reopen命令
kill -USR2 `cat ./logs/nginx.pid` #升级可执行文件。热部署
kill -WINCH `cat ./logs/nginx.pid` #优雅的关闭worker进程。

每个worker进程也可以接收信号:

kill -TERM xxx #快速关闭worker进程
kill -QUIT xxx #优雅退出
kill -USR1 xxx #重新打开日志文件,先mv一个,再去执行这个命令。-s reopen命令

更改配置文件

  1. 发送HUP信号给master进程。
  2. master检查新的配置文件语法是否合理。
  3. 如果合理,根据新的配置文件打开新的socket连接监听。会创建新的worker进程,然后通知老的worker进程优雅的关闭。老进程收到消息后完成当前客户端的请求,然后自动关闭。
  4. 如果不合理,回滚,使用原先的配置文件继续运行。

日志切割

  1. 手动重命名log文件。
  2. 给master进程发送USR1信号。
  3. 重新打开文件。

热部署

  1. 备份一下原先的nginx文件。
  2. 把新的nginx二进制文件放到原先相同目录下。
  3. 给master进程发送USR2信号。
  4. master进程会把logs/nginx.pid文件复制一份为logs/nginx.pid.oldbin,然后运行新的nginx文件,生成新的worker进程。
  5. 新老master和worker共存。(如果没有成功可以看logs/error.log是否有日志)

  6. 给老master进程发送WINCH信号,老master就会发送信号让他对应的worker进程优雅的退出。QUIT信号。
  7. 然后就剩新的master和worker进程,以及老的master进程。

注意:老的master进程不会退出。可以用于必要时候的回滚操作。有两种情况。

  • 给老的master进程发送HUP信号,它会以不读取nginx.conf的方式启动新的worker进程。然后再给新的master进程发送QUIT信号让他优雅的退出。
  • 给新的master进程发送TERM信号,它会通知自己的worker进程立即退出。如果退出不成功,使用kill让worker进程强制退出。新的master退出之后,老的master进程会自动启动新的worker进程。

如果回滚,那么第四步的nginx.pid.oldbin文件会被丢弃。

如果升级成功,就给老的master进程发送QUIT信号,让其优雅的退出。

原文地址:https://www.cnblogs.com/sheldon-lou/p/12355173.html

时间: 2024-10-30 07:31:09

Nginx-3.控制nginx的相关文章

运行和控制Nginx

转于:http://www.nginx.cn/NginxChsCommandLine#reload%20config Nginx命令行选项 启动.停止.重启nginx命令 如何重新加载nginx配置文件 nginx程序不重启平滑升级可执行文件 nginx命令行参数 不像许多其他软件系统,Nginx 仅有几个命令行参数,完全通过配置文件来配置 -c </path/to/config> 为 Nginx 指定一个配置文件,来代替缺省的. -t 不运行,而仅仅测试配置文件.nginx 将检查配置文件的

使用python控制nginx禁封ip

python控制nginx禁封ip nginx中的access.log最近有大量的用户访问,怎么样屏蔽掉在一定时间段内访问次数多的ip呢? 测试准备: 两个tomcat,一个nginx做均衡负载,服务器上装有python3 python脚本 #服务器每60s循环一次,抓取到超过200次以上的ip地址写入rainbol_ip.conf文件中,重启nginx禁封生效 import time import datetime import os point = 0 while True: with op

系统服务nginx启动控制脚本

#!/bin/sh #   # nginx - this script starts and stops the nginx daemon   #   # chkconfig:   - 85 15   # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \   #               proxy and IMAP/POP3 proxy server   # processname: nginx   # config:  

编写Nginx服务控制脚本

./configure --user=www --group=www --prefix=/application/nginx --sbin-path=/application/nginx/sbin --conf-path=/application/nginx/conf/nginx.conf --error-log-path=/application/nginx/logs/error.log --http-log-path=/application/nginx/logs/access.log --

Nginx配置文件(nginx.conf)配置详解

Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目.根据硬件调整,通常等于CPU数量或者2倍于CPU. error_log  logs/error.log; error_log  logs/error.log  notice; error_log  logs/error.log  info; 错误日志:存放路径. pid logs/nginx.pi

Nginx教程(一) Nginx入门教程

Nginx教程(一) Nginx入门教程 1 Nginx入门教程 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行.由俄罗斯的程序设计师IgorSysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好. 1.1 Nginx下载安装 1.Nginx下载:nginx-1.13.0.tar.g

NGINX Web Server Nginx web 服务器

原文地址:http://nginx.com/resources/admin-guide/web-server/ NGINX Web Server Nginx web 服务器 This section describes: the most common configuration of a web server how to set up virtual servers and define locations for request processing how to use variable

NGINX Web Server Nginx web server

原文地址:http://nginx.com/resources/admin-guide/web-server/ NGINX Web Server Nginx web server This section describes: the most common configuration of a web server how to set up virtual servers and define locations for request processing how to use varia

【Nginx系列】Nginx虚拟主机的配置核日志管理

Nginx配置段 #user nobody; worker_processes 1;// 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events {// 一般是配置nginx连接的特性 如1个word能同时允许多少连接 w

Nginx 相关介绍(Nginx是什么?能干嘛?)

Nginx的产生 没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器.基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务. 然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同.这也使得