博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx 笔记与总结(2)信号控制
阅读量:5942 次
发布时间:2019-06-19

本文共 1770 字,大约阅读时间需要 5 分钟。

开启、关闭、重启 Nginx

官方地址:

 

开启:

/usr/local/nginx/sbin/nginx

 

 

关闭,用信号控制,语法:

kill 信号名 pid

 

查看 Nginx 进程:

netstat -antp

ps aux|grep nginx

master process 表示主进程,用来管理子进程

 

关闭 Nginx:

master process 和 worker process 这两个进程已经不存在了,同时 80 端口已经没有被占用了。

 

 

Nginx 的信号控制包括:

  

TERM, INT Quick shutdown(紧急关闭,轻易不要这样使用)
QUIT Graceful shutdown(优雅地关闭进程,即等请求结束后再关闭)
KILL Halts a stubborn process
HUP Configuration reload
Start the new worker processes with a new configuration
Gracefully shutdown the old worker processes(改变配置文件,平滑地重读配置文件)
USR1 Reopen the log files(重读日志,在日志按月/日分割时有用)
USR2 Upgrade Executable on the fly(平滑地升级)
WINCH Gracefully shutdown the worker processes(优雅地关闭旧的进程(配合USR2来进行升级))

 

 

 

 

 

 

 

 

 

 

 【测试 HUP】

① 访问  http://192.168.254.100/

 

② 更改配置文件:

vim /usr/local/nginx/conf/nginx.conf

在 index.html 前加上 test.html。此时 test.html 的优先级要高于 index.html

 

③ 在 nginx 的 html 目录下新建 test.html:

vim /usr/local/nginx/html/test.html

 

此时在 nginx 的 html 目录下就多了 test.html 文件:

ls /usr/local/nginx/html/

 

④ 平滑地重读配置文件:

首先查看 nginx 的进程号 pid:2192

 

平滑地重读配置文件:

kill -HUP 2192

 

重新访问 192.168.254.100:

 

【另一个测试 HUP】

① 修改 test.html:

test HUPtest HUP

导致的结果是访问该页面,该页面会一直刷新:

 

② 修改配置文件:

vim /usr/local/nginx/conf/nginx.conf

去掉 test.html

 

此时页面一直在刷新,而内容不变;

 

③ 再次平滑地重读配置文件:

kill -HUP 2192

内容在很短时间内改变为 Welcome to nginx!

或者

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

 

因为

cat /usr/local/nginx/logs/nginx.pid

输出的就是 nginx 的 pid:2192

进程文件 nginx.pid 是不会变的,而进程号 pid 是会变的。

 

 

【测试 USR1】

① 查看 nginx 的 logs 目录,有一个 access.log,它记录了所有对 Web 服务器的访问活动(例如上例中 js 不断刷新页面就会记录到 access.log 中,该文件会一直增涨):

 

如果要把 access.log 按日期进行备份,不能简单地只把 access.log 更改为 access.log.20150722,然后新建一个 access.log。因为该文件的 inode 是不变的,access.log.20150722 还在继续增涨。

 

② 要想新的日志写进新的 access.log ,则需要使用 Nginx 信号控制中的 USR1:

kill -USR1 2192

此时新的日志都写进了新建的 access.log 中,access.log.20150722 的大小则保持不变,完成备份。

 

转载地址:http://njmtx.baihongyu.com/

你可能感兴趣的文章
《C++入门经典(第5版•修订版)》——2.6 问与答
查看>>
PLM调研第二天
查看>>
《精通Linux设备驱动程序开发》——1.5 Linux发行版
查看>>
《术以载道——软件过程改进实践指南》—第1章1.3节如何实施CMMI
查看>>
Harris’s Linked List
查看>>
(流式、lambda、触发器)实时处理大比拼 - 物联网(IoT)\金融,时序处理最佳实践
查看>>
什么Linux服务器最适合你?
查看>>
git 换行符问题,统一linux风格
查看>>
SQL on Linux Run on Docker
查看>>
C语言程序设计实践(OJ)-初识函数
查看>>
Spark机器学习9· 实时机器学习(scala with sbt)
查看>>
数据结构实践——队列数组
查看>>
从Demo到日千万PV,就是快! – 爱线下的上云实践
查看>>
Linux 时钟精度 与 PostgreSQL auto_explain (explain timing 时钟开销估算)
查看>>
架构师速成-架构目标之可用性
查看>>
云栖TechDay精华文章合集
查看>>
Java 深、浅克隆
查看>>
设计模式(八)之单例模式
查看>>
协同过滤算法 R/mapreduce/spark mllib多语言实现
查看>>
【云栖说第三期】发现大家对能模仿马云声音的ET有兴趣,我们找了阿里四位专家来聊聊ET背后的人工智能...
查看>>