Nginx笔记

2018-04-23  本文已影响0人  溪桥路转

nginx的信号控制

参数 说明
TERM, INT Quick shutdown
QUIT Graceful shutdown (即等待请求结束后再关闭)
HUP 配置文件改变后,会开新的进程去读取新的配置文件,然后再优雅的关闭旧进程
USR1 Reopen the log file 重读日志,在日志按月/日分割时有用
UER2 Upgrade Executable on the fly 平滑的升级
WINCH 优雅的关闭旧的进程(配合USR2来进行升级)

HUP 使用方法:

ps aux | grep nginx

nginx 进程信息:

root     29449  0.0  0.0  20004   648 ?        Ss   14:31   0:00 nginx: master process ./nginx
nobody   29450  0.0  0.0  20448  1244 ?        S    14:31   0:00 nginx: worker process
root     30211  0.0  0.0 103264   848 pts/0    S+   20:41   0:00 grep nginx

使用命令重读配置文件:(不会关闭nginx)

kill -HUP 29449

使用USR1切割日志

[root@localhost logs]# cd /usr/local/nginx/logs
[root@localhost logs]# ls
access.log  error.log  nginx.pid

access.log就是nginx的默认日志文件,切割日志的时候,需要先对access.log文件重命名,然后创建一个access.log文件,使用USR1命令进行重读日志文件。

ps: 当修改access.log的文件名后,(例如,我们修改为在文件名后加上日志切割日期:access.log.201804231900),创建access.log文件,如果不使用USR1命令进行更新,nginx依然会向access.log.201804231900文件中写入日志,而不会向access.log文件中写入。
因为在linux系统中,是将文件挂载在文件节点inode上面的,修改文件名,并没有修改其指向的inode节点。

我们先来看看nginx的日志文件:

[root@localhost nginx]# ll logs/                          
总用量 12                                                    
-rw-r--r--. 1 root root 1966 4月  23 19:07 access.log      
-rw-r--r--. 1 root root 1939 4月  23 19:07 error.log       
-rw-r--r--. 1 root root    6 4月  22 14:31 nginx.pid          

打开浏览器,请求nginx服务器里面的资源,


打开浏览器,请求nginx服务器里面的资源

然后再查看日志文件:

[root@localhost nginx]# ll logs/                          
总用量 12                                                    
-rw-r--r--. 1 root root 3446 4月  23 19:07 access.log      
-rw-r--r--. 1 root root 1939 4月  23 19:07 error.log       
-rw-r--r--. 1 root root    6 4月  22 14:31 nginx.pid    

如图,红框标记的,日志文件大小增加了:

日志文件大小增加
现在,我们修改nginx的配置文件access.logaccess.log.201804231900,然后查看日志文件。
[root@localhost nginx]# mv ./logs/access.log ./logs/access.log.201804231900
[root@localhost nginx]# ll logs/
总用量 12
-rw-r--r--. 1 root root 3446 4月  23 19:07 access.log.201804231900
-rw-r--r--. 1 root root 1939 4月  23 19:07 error.log
-rw-r--r--. 1 root root    6 4月  22 14:31 nginx.pid

刷新浏览器,再次查看日志文件:

[root@localhost nginx]# ll logs/
总用量 16
-rw-r--r--. 1 root root 5111 4月  23 19:18 access.log.201804231900
-rw-r--r--. 1 root root 1939 4月  23 19:07 error.log
-rw-r--r--. 1 root root    6 4月  22 14:31 nginx.pid
修改日志文件名后查看日志
创建access.log文件:
[root@localhost nginx]# touch ./logs/access.log
[root@localhost nginx]# ls
client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp
创建access.lo`文件

查看日志文件:

[root@localhost nginx]# ll ./logs/
总用量 16
-rw-r--r--. 1 root root    0 4月  23 19:20 access.log
-rw-r--r--. 1 root root 5111 4月  23 19:18 access.log.201804231900
-rw-r--r--. 1 root root 1939 4月  23 19:07 error.log
-rw-r--r--. 1 root root    6 4月  22 14:31 nginx.pid

刷新浏览器,再次查看。我们会发现,增长的依然是access.log.201804231900,日志文件并没写入access.log

[root@localhost nginx]# ll ./logs/
总用量 16
-rw-r--r--. 1 root root    0 4月  23 19:20 access.log
-rw-r--r--. 1 root root 5111 4月  23 19:18 access.log.201804231900
-rw-r--r--. 1 root root 1939 4月  23 19:07 error.log
-rw-r--r--. 1 root root    6 4月  22 14:31 nginx.pid
[root@localhost nginx]# ll ./logs/
总用量 16
-rw-r--r--. 1 root root    0 4月  23 19:20 access.log
-rw-r--r--. 1 root root 6591 4月  23 19:29 access.log.201804231900
-rw-r--r--. 1 root root 1939 4月  23 19:07 error.log
-rw-r--r--. 1 root root    6 4月  22 14:31 nginx.pid

如图所示,日志文件并没写入access.log

日志查看
切换日志
找到文件进程ID,然后使用信号量,进行更新。
[root@localhost nginx]# ps aux| grep nginx
root       884  0.0  0.0 103260   840 pts/0    S+   19:36   0:00 grep nginx
root     29449  0.0  0.0  20004   648 ?        Ss   Apr22   0:00 nginx: master process ./nginx
nobody   29450  0.0  0.0  20448  1544 ?        S    Apr22   0:00 nginx: worker process
[root@localhost nginx]# kill -USR1 29449

[root@localhost nginx]# kill -USR1 29449就是命令的使用方法,如果不想查找进程id,可以使用命令kill -USR1 './logs/nginx.pid',效果一样。

查看日志:

[root@localhost nginx]# kill -USR1 29449
[root@localhost nginx]# ll ./logs/
总用量 16
-rw-r--r--. 1 nobody root    0 4月  23 19:20 access.log
-rw-r--r--. 1 root   root 6591 4月  23 19:29 access.log.201804231900
-rw-r--r--. 1 nobody root 1939 4月  23 19:07 error.log
-rw-r--r--. 1 root   root    6 4月  22 14:31 nginx.pid

刷新浏览器,再次查看:

[root@localhost nginx]# ll ./logs/
总用量 20
-rw-r--r--. 1 nobody root  740 4月  23 19:38 access.log
-rw-r--r--. 1 root   root 6591 4月  23 19:29 access.log.201804231900
-rw-r--r--. 1 nobody root 1939 4月  23 19:07 error.log
-rw-r--r--. 1 root   root    6 4月  22 14:31 nginx.pid
日志重读成功
我们可以看出,access.log的文件大小在增加,而access.log.201804231900的文件大小并没有变化。说明日志切割成功。
上一篇下一篇

猜你喜欢

热点阅读