自学内容网 自学内容网

nginx的相关命令

nginx的启用和停止有多种方式1、nginx服务的信号控制;2、nginx的命令行控制。

1、信号控制

ps -ef | grep nginx

可以查询跟nginx有关的所有线程。

有一个master进程和worker进程

我们作为管理员,只需要通过master进程发送信号来控制nginx,这时需要俩个前提条件:一个是要操作的master进程,一个是信号。

如何获取master进程的pid:1、ps -ef | grep nginx可以查询;2、logs目录有nginx.pid文件可以查询进程id。

     信号种类:

 调用命令:kill -signal pid    signal即为信号 pid为master进程id 

其中HUB命令是会删除原来的worker进程,新创建一个worker进程读取的最新的配置文件,pid也变了。 USR2命令可以不停止nginx运行的情况下,完成nginx的升级。流程是:master接收到USR2信号后。会将现在的所有master、worker及其之间的联系都复制一份,将新创建的master的id存放在nginx/logs/nginx.pid中,原来的master 的id存放在新创建的nginx/logs/nginx.pid.oldbin文件中,确认更新完毕后,会通过QUIT命令(需要程序员手动去执行)关闭原来的master相关进程。

比如优雅的关闭服务

kill -QUIT 1213
//或者 more为获取该文件中的信息,其中 ` 为漂号 不是单引号,需要切换为英文才能打出来
kill -USR1 `more /usr/local/nginx/logs/nginx.pid`

2、nginx命令行控制

nginx版本更新:

方案一:使用nginx服务信号进行升级

先将sbin下的nginx-old 老版本进行备份

cd /usr/local/nginx/sbin
mv nginx nginxold

 将nginx-new新版本安装目录编译后的objs目录下的nginx文件,拷贝到/usr/local/nginx/sbin目录下。

cd /../nginx-1.26.2/objs
cp nginx /usr/local/nginx/sbin

发送USR2信号给nginx-old对应的master进程

kill -USR2 `more /usr/local/logs/nginx.pid`

 发送QUIT信号给nginx-old对应的master进程。

kill -QUIT `more /usr/local/logs/nginx.pid.oldbin`

方案二:使用make命令进行更新。

第一步和第二步与方案一相同。

第三步:进入nginx-new安装目录 执行 make upgrade

第四步:查看是否更新完成

./nginx -v

 


原文地址:https://blog.csdn.net/hguhbh/article/details/143669161

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!