一、引言
接着上节博客来,上节博客教了大家如何在Linux系统中安装nginx服务,也告诉了大家如何启动nginx服务了。那如果是在日常正常使用nginx当中,更改了配置文件,那有如何将nginx优雅的重启。可不要像上节博客使用kill -9 来杀死进程,万一客户下单操作一半,结果你这直接将nginx进程杀死,这就尴尬了。 本章就介绍如何用信号来控制nginx!!!
二、Nginx信号控制使用的几个选项
TERM、INT | 快速关闭进程 |
QUIT | 优雅的关闭进程,即等请求结束之后再关闭 |
HUP | 改变配置文件之后、平滑的重读配置文件 |
USR1 | 切割日志 |
USR2 | Nginx平滑的升级 |
WINCH | 优雅的关闭旧进程,配合USR2进行升级 |
二、如何优雅的关闭Nginx进程
进程号可以通过"ps aux|grep nginx"来查找)
2.2、如果在Nginx在启动状态下,更改了配置文件,在不关闭nginx进程的前提下,让更改的配置文件生效。在这个时候我们就需要使用"kill -HUP 进程号",这样就不需要关闭nginx服务,即可让配置文件重新生效。
我们来做个实验,我们知道如果nginx启动后,我们通过浏览器来访问默认看到的是nginx欢迎页面。
页面是写在nginx安装目录下的html文件夹中)
这个时候我们更改了配置文件,但我们不需要重启也能让配置文件生效。使用"kill -HUP 进程号"即可
三、日志切割
在我们在访问网络服务的时候,如果经过了Nginx代理,全部都有日志保存的。Nginx日志是存储在安装目录下的logs文件下的,access.log 这个是记录日常访问的日志。如果这个时候我们想吧之前的日志做个备份,让日志写到新的文件中去,该怎么处理呢?
有些童鞋说把access.log改个名字,然后在新建一个access.log的文件。童鞋那你就错啦!!!
在linux中每个文件都有一个i节点,往文件写入内容也是根据你的i节点来的,就算你把名字改掉,文件的i节点也不会改变,所以日志还是会写入到之前的文件中。
kill -USR1 进程号"即可。(整个操作如图2)
操作完成后,系统会自动生产一个新的access.log文件。