nginx中的“pid”是什么?

nginx中的“pid”是什么?,第1张

刚安装的时候就是没有,其实在启动 nginx 时自动生成的 里面存放的是 当前 nginx 住进程的 ID 号;\x0d\x0a所以在配置文件中指定pid\x0d\x0apid /usr/local/webserver/nginx/nginx.pid\x0d\x0a哇这个事情 搞了我好长时间,我以为我装的用问题\x0d\x0anginx的结束重启一般是通过下面命令来实现的:\x0d\x0akill -QUIT 26000\x0d\x0a其中26000是nginx的主进程号。\x0d\x0a每次都需要通过ps命令来查询nginx的主进程号,非常麻烦。 在《实战nginx:取代Apache的高性能Web服务器》一书中提到了使用pid文件的方法,不巧的是给的命令漏了些东西,这里给出完整的指令。\x0d\x0apid文件就是一个纯文本文件,里面记录的是进程的pid号。\x0d\x0a下面是一个pid文件的内容::26032\x0d\x0anginx的默认pid文件\x0d\x0anginx使用了pid文件来记录master process的pid号,如果编译时没有指定,那它的路径就是:\x0d\x0a 回答于 2022-12-11

在测试的时候我想看nginx日志都记录了什么,但是测试虚拟机nginx已经运行了一段时间,日志记录了很多东西,所以我删除了nginx的logs目录下的所有文件。

发现报错了!

提示打开失败,没有这个文件或者目录。

我们看到报错中指向/usr/local/nginx/logs/nginx.pid这个文件,为什么指向这里?这里我们就需要打开配置文件,配置的上部我们看到:

这里尺举的logs/nginx.pid相对我们nginx的安装目录,我把nginx安装在/usr/local/nginx目录下,那么整个pid文件绝对路袜嫌径就是/usr/local/nginx/logs/nginx.pid

1.我们可以杀死所有nginx进程,运行命令:

2.如果报错:-bash: killall: 未找到命令,运行命令:

3.这时重启nginx就可以正常运行了:

刚刚nginx成功启动了,我们切告困手换到/usr/local/nginx/logs目录下发现系统重新为我们生成了一个nginx.pid,我们查看这个文件:

我们发现nginx主进程的pid就是nginx.pid文件中的数值!,如果我们误删除nginx.pid,只需要创建nginx.conf配置文件中的pid文件,加入nginx主进程的pid数值,重启nginx就不会报错了,就可以正确运行了。

安装完成Nginx服务器之后我们需要来学习如何启动,停止,重启Nginx服务。在Linux平台下有着不止一种的控制Nginx启停的方法 下面我们来详细的学习一下。

Nginx的信号控制

在控制nginx中有一类是通过信号控制的,因此我们来先介绍一下Nginx服务器的信号控制.

在nginx服务运行时,会保持一个主进程和多个worker process 工作进程, 我们可以通过给主进程发送信号,就可以控制服务的启停了,那么我们如何去给服务发送信号?发送信号我们必须要知道服务的PID, 那么我们就来获取一下他的进程ID

第一种直接利用ps 查看详情 :

第二种 我们直接查看文件存储地址查看: 此 *** 作需要先开启pid的存储才可以生效

找到我们的pid之后那么可以开始我们下一步的 *** 作 再开始之前先了解一下可以接受的信号有哪些,各自有什么含义

向Nginx服务进程发送信号也有两种方式:

同样我我们可以使用动态的PID

kill 信号 filepath (filepath指的是我们的Nginx.PID的路径)

nginx服务的启动

在linux平台下,启动Nginx服务器直接运行安装目录下的Sbin目录中的二进制文件即可.

具体命令在sbin目录下:

这里主要讲下二进制文件的用法这是我们工作中常常用到的一些指令

nginx服务停止

停止我们的Nginx有两种方式

**Nginx服务的重启 **

当我们Nginx服务加入新的模块后,如果希望当前的Nginx服务应用新的配置或者使用新的模块生效,就需要重启Nginx服务。当然我们可以先关闭Nginx服务然后使用新的Nginx配置文件重启Nginx服务, 这里我们讲的是平滑的重启Nginx服务

平滑是重启的一个过程,Nginx服务进程收到信号后先读取我们新的配置文件,如果我们新的配置文件正常,那么启动新的Nginx服务,然后平滑的关闭旧的进程服务,如果新的Nginx服务配置文件有问题那返携么将显示错误然后任然使用旧的Nginx

使用以下命令可以做到Nginx的平滑重启

Nginx服务的升级

如果我们需要对当前的Nginx服务进行升级 ,应用新的模块,最简单的方式是停下来,然后开启新的Nginx服务,那么给我们的用户体验是非常差的,会导致用户在一段时间内无法访问我们的服务器为了解决这个问题,Nginx提供了平滑升级的方案

过程如下:

注意:

为了实现nginx服务器的平滑升级,新安装的服务器路径应该和旧的一致。因此建议用新安装的服务器之前先备份一下我们的旧nginx服务器,如果由于种种原因不能保持新旧客户端路径一致则可以做一下 *** 作,将旧的服务器路径更改为新的路径,新的服务器放入旧的路径中漏携伏

执行过程

Nginx服务接受到USR2的信号后,首先将旧的Nginx。pid文件后面添加一个.oldbin

变成了,nginx.pid.oldbin 然后执行新版本的Nginx服务器的二进制文件启动服务,如果启动成功那么我们将会有两个Nginx服务在提供服务

之后需隐念要向旧的发送WINCH信号,使旧的nginx服务平缓的停止并删除

nginx.pid.oldbin文件 在发送WINCH信号前我们可以随时停止新的服务

从目录中我们不难看出所有的配置文件都放在conf目录下主要的配置文件为 Nginx.conf

那么下面我们带领你来去详细的解读一下其中的配置详情

注:近期持续更新有关nginx的知识点,欢迎大家关注!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12162248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存