运行和控制Nginx—命令参数详解分享

如果您有服务器咨询问题、购买问题、可以联系我们客服 7271895 690624
商祺云-阿里代理、景安代理、西部代理

参考资料:

Nginx中文文档:

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

命令行参数:

常用命令:

-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

运行和控制Nginx—命令参数详解分享


[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 指令,来改变该文件的位置。

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

TERM,INT 快速关闭
QUIT 从容关闭
HUP 重新配置

用新的配置开始新的工作进程

从容关闭旧的工作进程

USR1重新打开日志文件,在切割日志时用途较大
USR2平滑升级可执行程序
WINCH从容关闭工作进程

启动

启动代码格式: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 nginx
root      2073     1  0 10:37 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody    2074  2073  0 10:37 ?        00:00:00 nginx: worker process                                          
root      2076  2022  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 -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: 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.conf
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: 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——命令行参数和信号的详细内容,更多请关注学派网其它相关文章!

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/server/3152.html

(0)
打赏 微信扫一扫 微信扫一扫
云大使的头像云大使
上一篇 2019年1月15日 下午10:24
下一篇 2019年1月17日 下午9:40

相关推荐

  • 关于win2008 R2与sql2005、2008运行asp的时候速度缓慢的解决方法教程-windows教程-学派吧

    这篇文章主要介绍了win2008 R2与sql 2008运行asp的时候速度缓慢的解决方法,需要的朋友可以参考下 在以SQL Server 2005数据库为后台的ASP网站访问速度慢,情况如下:一个服务器上的两个ASP网站,一个访问很快,一个很慢。 原因排查的思路与步骤: 首先在我电脑上依次打开这两个网站,一个两三秒就打开了,另一个需要10秒钟。看来问题情况…

    服务器运维 2018年12月2日
    2.5K00
  • centos下 du命令的使用方法分享(查看目录下的文件大小)

    du的用法 du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh du常用的选项:   -h:以人类可读的方式显示   -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小   -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小   -c:显示几个目录或文件占用的磁盘空间大小,还要统计它…

    服务器运维 2019年11月10日
    4.3K00
  • apache如何做到日志分割-Linux运维-学派吧

    现在许多网站都是用 apache 做 web 代理的,随时间时间的推长,apache 的访问日志 access.log 会越来越大,所以如果能实现每天分割成一个新得日志,这是比较方便管理的。 当然,apache 本身就具备这样的功能,我需要在 apache 的配置文件中,每个网站的日志部分需要调整成如下的格式 httpd.conf:ErrorLog “| /…

    2018年9月30日
    2.2K00
  • 重启网卡报Job for network.service failed because the control process exited with error code报错

    今天给腾讯云配置弹性IP。并使用多IP。配置好以后。重启网卡失败。。查了很多资料。终于解决。现在给整理出来。 [root@mina0 hadoop]# systemctl restart network Job for network.service failed because the control process exited with error c…

    2019年7月25日
    6.0K00
  • 如何在Tomcat中创建VirtualHost的教程分享-学派吧

    本篇文章介绍的内容是关于如何在Tomcat中创建VirtualHost(虚拟主机),下面我们来看具体的内容。 为什么选择虚拟主机? 虚拟主机允许我们在一台服务器上承载多个域(网站)。它是多个主机帐户之间资源共享的概念。虚拟主机的最佳用途是共享主机服务器,多个用户可以在一台服务器上承载多个网站。 安装细节 我们已经为Tomcat主机服务创建了一个IP为192.…

    服务器运维 2019年5月7日
    3.9K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部