Nginx 启动 重启 终止
终止
1. 查找进程号
ps aux | grep nginx
可以看到有两个进程 第1个进程是工作进程 第3个是主进程 我们需要终止的是主进程 (master)
2. 使用kill指令终止进程
kill -INT 32272
启动
直接执行nginx安装目录的二进制文件
/usr/local/nginx/sbin/nginx
也可以加上在后面加上配置文件 默认启动会加载安装目录下的配置文件 也可指定其他的配置文件
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
Nginx Kill 信号量
更新配置文件 (重启)
在不需要终止Nginx进程的情况下更新我们更改的配置文件可以使用
kill -HUP 进程号
以上所说的都需要查询一遍进程号(pid)操作,其实我们也可以在nginx.conf中看一下pid的位置,直接用cat返回 ,pid记录的就是当前进程的pid。
kill -QUIT `cat /var/run/nginx.pid`
使用Nginx指令终止 重启服务
我们也可以直接使用Nginx指令对服务器或者配置文件进行操作
/usr/local/nginx/sbin/nginx -s reload //更新配置文件
/usr/local/nginx/sbin/nginx -s stop //关闭服务器
Nginx日志管理
当用户访问我们的服务器时,nginx会记录下用户访问的记录。
具体信息包括ip、客户端访问时间、请求协议、状态码、客户端信息等等信息,具体可参考下图。当然记录的内容可以是我们自定义的。
在服务器不断被访问的情况下,我们的日志文件会不断的增大,这时候就需要我们对日志文件进行管理
– 使用kill -usr1 nginx.pid进行日志切割
简单的重命名(MV)并不能将原来的日志分割,因为Nginx写日志是通过内存写入,如果只是单纯的使用重命名操作,新日志的写入依然是在新命名的文件中,而不是配置文件中定义的文件。
可以做一个简单的测试
mv access_nginx.log new_access_nginx.log
然后再次访问站点,我们会发现日志的写入是在new_access_nginx.log中,而不是配置文件中的access_nginx.log中。
如果我们这时候执行
kill -USR1 `cat nginx.pid`
nginx.pid 配置文件中pid的位置
在存放日志的目录中出现了新的access_nginx.log,之前的的日志内容已经切割到new_access_nginx.log中啦。
使用脚本定时切割日志
我们根据日期去切割管理每一天的日志,我们可以使用linux脚本进行操作
#!/bin/sh
LOG_PATH=/data/wwwlogs/access_nginx.log
BACK_PATH=/data/wwwlogs/runback/
LOG_NAME=access_nginx_$(date -d yesterday +%Y%m%d).log
mv $LOG_PATH $BACK_PATH$LOG_NAME
kill -USR1 `cat /var/run/nginx.pid`
如果出现新的日志,就证明这个脚本能成功对日志进行切割。
接着使用crontab做定时器任务,在每天凌晨0点执行这个脚本。
0 0 * * * sh /data/wwwlogs/runback/access.sh
这样,就实现了在每天凌晨0点对昨天的日志进行切割管理了。
ps::废话不用看,根据自己的实际配置文件执行代码就行勒。