失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 运行和控制Nginx——命令行参数和信号

运行和控制Nginx——命令行参数和信号

时间:2018-12-29 03:13:37

相关推荐

运行和控制Nginx——命令行参数和信号

运维|linux运维

Nginx,命令行,参数,运行,控制

运维-linux运维

参考资料:

sns社交网站.net源码,vscode自动补全c代码,ubuntu vi 撤回,tomcat找不到文件,爬虫__new__,php主从数据库,标准的seo文章推广引流,动力启航网站后台,css模板套用lzw

Nginx中文文档:

系统软件下载站源码,ubuntu网络日志,编程爬虫怎么制作,咸阳高中生php开发培训技校,长沙同城seolzw

Nginx的启动、停止、平滑重启、信号控制和平滑升级:

linux c源码,vscode git 回退,ubuntu ohzsh,调整tomcat目录,检查sqlite数据库,cms充值插件,比较适合后端学习的前端框架,如何做爬虫软件推广,修改php 后缀,瓷砖seo优化技术,网站源码php提取工具,网页全屏整夜切换过度特效,阿里云套模板lzw

命令行参数:

常用命令:

-c filename:设置配置文件。

-t :不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。

-s :传递一个信号,stop快速关闭,quit从容关闭,reopen重新打开日志文件、用于切换日志文件,reload重载配置文件。

-v :显示nginx的版本。

-V:显示nginx的版本,编译器版本和配置参数

———————————————————————————————————————————————————————————

[root@localhost /]# alias nginx=’/usr/local/nginx/sbin/nginx’

[root@localhost /]# alias

[root@localhost /]# nginx -h nginx version: nginx/1.11.13Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]Options: -?,-h : this help -v : show version and exit -V : show version and configure options then exit -t : test configuration and exit -T : test configuration, dump it and exit -q : suppress non-error messages during configuration testing -s signal: send signal to a master process: stop, quit, reopen, reload -p prefix: set prefix path (default: /usr/local/nginx/) -c filename : set configuration file (default: conf/nginx.conf) -g directives : set global directives out of configuration file[root@localhost /]#

———————————————————————————————————————————————————————————

控制信号:

可以使用信号系统来控制主进程。默认,nginx 将其主进程的 pid 写入到 /usr/local/nginx/logs/nginx.pid 文件中。通过传递参数给 ./configure 或使用 pid 指令,来改变该文件的位置。

主进程可以处理以下的信号:

启动:

启动代码格式:nginx安装目录地址 -c nginx配置文件地址

[root@localhost ~]# alias nginx=/usr/local/nginx/sbin/nginx[root@localhost ~]# nginx -c /usr/local/nginx/conf/nginx.conf[root@localhost ~]# ps -ef|grep nginxroot20731 0 10:37 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confnobody 2074 2073 0 10:37 ? 00:00:00 nginx: worker processroot2076 0 10:37 pts/0 00:00:00 grep nginx[root@localhost ~]#

停止:

从容停止:

# ` 字符是数字键盘 1 字符左边的那个字符

[root@localhost ~]# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`

快速停止:

[root@localhost ~]# kill -TERM `cat /usr/local/nginx/logs/nginx.pid`

[root@localhost ~]# kill -INT `cat /usr/local/nginx/logs/nginx.pid`

强行停止:

[root@localhost ~]# kill -9 nginx

重启:

1.普通重启:关闭进程,修改配置后,重启进程

2.重新加载配置文件,不重启进程,不会停止处理请求

3.平滑更新nginx二进制,不会停止处理请求

=========================================================================

注意:在重载前,测试一下配置文件:

# -t 参数将检查配置文件的语法是否正确,默认会检查 /usr/local/nginx/conf/nginx.conf 文件

[root@localhost ~]# /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

# 如果要对指定配置文件进行语法检查,可以继续添加 -c 参数

[root@localhost ~]# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.confnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost ~]#

=========================================================================

nginx的平滑重启:

如果改变了nginx的配置文件,想重启nginx,同样可以发送系统型号给nginx主进程的方式来进行,重启之前,要确认配置文件是否正确

[root@localhost ~]# kill -HUP 【nginx主进程号】

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

nginx的平滑升级:

当需要将正在运行中的nginx升级、添加/删除服务器模块时,可以在不中断服务的情况下,使用新的nginx可执行程序替换旧的:

1.使用新的可执行程序替换旧的可执行程序,对于编译安装的nginx,可以将新版本编译安装到nginx安装路径中,替换之前,备份一下旧的可执行文件

2.发送以下指令:

[root@localhost ~]# kill -USR2 【旧版本的nginx主进程号】

3.旧版本的nginx的主进程将重命名它的pid文件为.oldbin(例如:/usr/local/nginx/logs/nginx.pid.oldbin),然后执行新版本的nginx可执行程序,依次启动新的主进程和新的工作进程。

4.此时,新、旧版本的nginx实例会同时运行,共同处理输入的请求,要逐步停止旧版本的nginx,必须发送WINCH信号给旧的主进程,然后,它的工作进程就开始从容关闭:

[root@localhost ~]# kill -WINCH 【旧版本的nginx主进程号】

5.一段时间后,旧的工作进程(worker process)处理了所有已连接的请求后退出,仅由新的工作进程来处理输入的请求了。

6.这时候,可以决定是使用新版本,还是恢复到旧版了:

kill -HUP 【旧的主进程号】:nginx将在不重载配置文件的情况下启动它的工作进程

kill -QUIT 【新的主进程号】:从容关闭其工作进程(worker process)

kill -TERM 【新的主进程号】:强制退出

kill 【新的主进程号或旧的主进程号】:如果因为某些原因新的工作进程不能退出,则向其发送kill信号

新的主进程退出后,旧的主进程会移除.oldbin前缀,恢复为它的.pid文件,这样,一切就都恢复到升级之前了。

如果尝试升级成功,而你也希望保留新的服务器时,可发送QUIT信号给旧的主进程,使其退出而只留下新的服务器运行。

如果觉得《运行和控制Nginx——命令行参数和信号》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。