【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级

简介: 1.启动nginx的方式: cd /usr/local/nginx ls ./nginx -c nginx.conf 2.查看nginx的进程方式: [root@localhost nginx]# ps –ef | grep nginx [root@localhost nginx]# ps -ef | grep n


1.启动nginx的方式:

cd /usr/local/nginx

ls

./nginx -c nginx.conf

2.查看nginx的进程方式:

[root@localhost nginx]# ps –ef | grep nginx

[root@localhost nginx]# ps -ef | grep nginx

root     21094     1  0 07:52 ?        00:00:00 nginx: master process ./nginx -c nginx.conf

nginx    21095 21094  0 07:52 ?        00:00:00 nginx: worker process

root     21270  3019  1 08:05 pts/1    00:00:00 grep nginx

3.查看Nginx服务主进程的方式:

[root@localhost nginx]# cat nginx.pid

21094

这个进程号和上面的进程号是一样的

4.Nginx服务可接受的信号

信号

作用

TERMINT

快速停止Nginx服务

QUIT

平缓停止Nginx服务

HUP

使用新的配置文件启动进程,之后平缓停止原有进程,也就是所谓的平滑重启

USR1

重新打开日志文件,常用于日志切割,在相关章节中会对此进一步说明

USR2

使用新版本的Nginx文件启动服务,之后平缓停止原有Nginx进程,也就是所谓的平滑升级

WINCH

平缓停止worker process,用于Nginx服务器平滑升级

nginx服务主进程发送信号也有两种方法。一种是使用nginx二进制文件

 

另一种方法是使用kill命令发送信号,其使用方法是:

Kill -9 PID

 

也可以通过发信号的方式:

使用TERM信号

[root@localhost nginx]# kill TERM 21094    (其中21094master进程的pid,其中TERM可以换成INT QUIT)

-bash: kill: TERM: arguments must be process or job IDs

[root@localhost nginx]# ps -ef | grep nginx

root     21417  3019  0 08:16 pts/1    00:00:00 grep nginx

 

重启命令

[root@localhost nginx]# ./nginx -c nginx.conf

[root@localhost nginx]# ps -ef | grep nginx

root     21440     1  0 08:18 ?        00:00:00 nginx: master process ./nginx -c nginx.conf

nginx    21441 21440  0 08:18 ?        00:00:00 nginx: worker process

root     21445  3019  2 08:18 pts/1    00:00:00 grep nginx

 

 

5、使用nginx的帮助的方式

nginx -h

[root@localhost nginx]# ./nginx -h

nginx version: nginx/1.10.1

Usage: 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: /usr/local/nginx/nginx.conf)

  -g directives : set global directives out of configuration file

 

[root@localhost nginx]#

 

通过-v 用来显示Nginx服务器的版本号;

通过-V显示版本号,同事显示相关的配置信息

通过-t检查Nginx服务器配置文件是否有语法错误,可以与-c联用,使输出内容更详细,这对查找配置文件中的语法错误很有帮助,如果检查通过,将显示类似下面的信息

[root@localhost nginx]# pwd

/usr/local/nginx

[root@localhost nginx]# ls

client_body_temp      fastcgi_params.default  koi-win             nginx               proxy_temp           uwsgi_params

fastcgi.conf          fastcgi_temp            logs                nginx.conf          scgi_params          uwsgi_params.default

fastcgi.conf.default  html                    mime.types          nginx.conf.default  scgi_params.default  uwsgi_temp

fastcgi_params        koi-utf                 mime.types.default  nginx.pid           scgi_temp            win-utf

[root@localhost nginx]# ./nginx -t -c nginx.conf

nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/nginx.conf test is successful

[root@localhost nginx]#

 

可以执行

[root@localhost nginx]# ./nginx -V

nginx version: nginx/1.10.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)

built with OpenSSL 1.0.1c 10 May 2012

TLS SNI support enabled

configure arguments: --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/home/toto/software/nginxdepents/pcre-8.37 --with-zlib=/home/toto/software/nginxdepents/zlib-1.2.8 --with-openssl=/home/toto/software/nginxdepents/openssl-1.0.1c --with-http_stub_status_module --user=nginx --group=nginx

[root@localhost nginx]#

杀死主进程的方式同样可以是:

./nginx SIGNAL nginx.pid

主要最后面一个参数是nginx.pid的路径

 

6Nginx服务的重启

关于Nginx平滑重启,平滑重启是这样一个过程,Nginx服务进程接收到信号后,首先读取新的Nginx配置文件,如果配置语法正确,则启动新的Nginx服务,然后平缓关闭旧的服务进程;如果新的Nginx配置有问题,将显示错误,仍然使用旧的Nginx提供服务。

 

使用以下命令实现Nginx服务的平滑重启

./nginx –g HUP [-c newConfFile]

HUP信号用于发送平滑重启信号。

newConfFile,可选项,用于指定新配置文件的路径

或者,使用新的配置文件代替了旧的配置文件后,使用:

Kill HUP `nginx.pid`    (注意最后一个参数连边的引号;引号里面是nginx.pid的路径)

也可以实现平滑重启。

 

7Nginx服务器的升级

如果要对当前的Nginx服务器进行版本升级,应用新模块,最简单的办法是停止当前Nginx服务,然后开启新的Nginx服务,但这样就会导致在一段时间内,用户无法访问服务器。为了解决这个问题,Nginx服务器提供平滑升级的功能。

平滑升级的过程是这样的,Nginx服务接收到USR2信号后首先将旧的nginx.pid文件(如果在配置文件中更改过这个文件的名字,也是相同的过程)添加.oldbin,变为nginx.pid.oldbin文件;然后执行新版本Nginx服务器的二进制文件启动服务。如果新的服务启动成功,系统中将由新旧两个Nginx服务公用提供Web服务。如果新的服务启动成功,系统中将有新旧两个Nginx服务共同提供Web服务。之后,需要向旧的Nginx服务进程发送WINCH信号,使旧的Nginx服务平滑停止,并删除nginx.pid.oldbin文件。在发送WINCH信号之前,可以随时停止新的Nginx服务。

注意:

为了实现Nginx服务器的平滑升级,新的服务器安装路径应该和旧的保持一致。因此建议用户在安装新服务器之前先备份旧服务器。如果由于某种原因无法保持新旧服务器安装路径一致,则可以先使用以下命令将旧服务器的安装路径更改为新服务器的安装路径:

./nginx –p newInstallPath

其中,newInstallPath为新服务器的安装路径。之后,备份旧服务器,安装新服务器即可。

做好准备工作以后,使用以下命令实现Nginx服务的平滑升级。

./nginx –g USR2

其中USR2信号用于发送平滑升级信号。或者,使用:

Kill USR2 `nginx.pid`   注意,最后一个参数里面是nginx.pid的路径

通过ps –ef | grep nginx查看新的Nginx服务器启动正常,再使用:

./nginx –g WINCH

其中,WINCH信号用于发送平滑停止旧服务信号。或者,使用:

Kill WIN `nginx.pid`

这样就不停止提供Web服务的前提下完成了Nginx服务器的平滑升级。

 

 

 

 

目录
相关文章
|
12月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
1053 17
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
2048 21
|
缓存 安全 网络协议
如何使用Bluetown Cloud服务器及其CDN服务来掩护VPS的真实IP地址。
最终,通过Bluetown Cloud的CDN服务,你的VPS不仅仅是隐藏在一层又一层的保护之下,同时也因为CDN的全球节点而享受到加速访问的优势,无所不在又不被发现,像是一位能在互联网世界中自由穿梭的幽灵特工。
235 14
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
595 14
|
物联网
云服务器搭建rttys服务
RTTYS是一款基于Web的串口调试工具,分为服务端(rttys)和客户端(rtty)。服务端负责连接串口设备并提供接口,客户端通过浏览器访问实现远程串口调试。它具有跨平台、易部署的特点,适用于物联网、嵌入式开发等场景,极大提升调试效率。
|
JSON API 数据安全/隐私保护
使用curl命令在服务器上执行HTTP请求
总的来说,curl是一个非常强大的工具,它可以让你在命令行中发送各种类型的HTTP请求。通过学习和实践,你可以掌握这个工具,使你的工作更加高效。
1326 30
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
1012 29
|
JavaScript Linux Python
在Linux服务器中遇到的立即重启后的绑定错误:地址已被使用问题解决
总的来说,解决"地址已被使用"的问题需要理解Linux的网络资源管理机制,选择合适的套接字选项,以及合适的时间点进行服务重启。以上就是对“立即重启后的绑定错误:地址已被使用问题”的全面解答。希望可以帮你解决问题。
689 20
|
数据库
【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警
【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警
|
数据库
【YashanDB知识库】服务器重启后启动yasom和yasagent进程时有告警
本文介绍了YashanDB在特定场景下的问题分析与解决方法。当使用yasboot重启数据库后,yasom和yasagent进程虽启动成功但出现告警,原因是缺少libnsl.so.1库文件或环境变量配置错误。解决步骤包括:检查系统中是否存在该库文件,若不存在则根据操作系统类型安装(有外网时通过yum或apt,无外网时创建符号链接),若存在则调整环境变量配置,并重新启动相关进程验证问题是否解决。