Nginx日志切割
1.什么是日志切割?
日志切割就是把系统的日志以天为单位进行存放,即每一天的日志都分开放
企业当中每天都要备份昨天的日志,然后生成一个新的日志记录今天的
(1)查看nginx服务器的日志都有哪些类型

(2)模拟多次访问



(3)在服务端查看日志的大小

(4)接下来手动进行日志切割
mv access.log `date +%F -d -1day`_access.log 备份
/usr/local/nginx/sbin/nginx -s reopen 重新生成一个新的日志



提示:可以将这些内容写在脚本里在放在crontab上每天自动执行!!
Nginx平滑升级与版本回退
升级
1.先安装一个低版本




2.查看现在的版本
cd /usr/local/nginx
./sbin/nginx -v 查看版本
./sbin/nginx -V 查看版本

3.备份启动脚本
1)首先将之前的版本的启动脚本备份
cd /usr/local/nginx/sbin
cp nginx nginx.old

现在要做的工作是,根据老版本的编译选项对新版本的nginx进行编译
那么做是为了与老版本的设置保持一致 ,以便之前的设置和文件能够继续使用保持不变
2)再编译新版本的时候configure make结束不要makeinstall,这会覆盖原来的nginx
此处只进行编译步骤(make)不执行安装步骤(makeinstall)因为make install 命令的本质就是将编译好的文件复制到对应的目录中所以此处省略make install以防止某些老的配文件被覆盖,我们只是为了升级nginx原来的配置让需要保持不变所以要确保配文件不会被覆盖
4.对新版本进行编译


5.复制新版本的启动脚本
cd /root/nginx-1.17.8/objs
cp -f nginx /usr/local/nginx/sbin/nginx

6.向原来的nginx的master进程发送信号,不再接收新的请求,新的nginx程序开启worker进程,并且开始接收请求

ps -ef | grep nginx可以看到原来的2个进程
kill -USR2 原来master进程的pid
ps -ef | grep nginx可以看到4个进程(新版本已经可以用了)
kill -WINCH 原来master进程的pid关闭原来进程的子进程,master不结束,防止更新失败
ps -ef | grep nginx可以看到3个进程(新版本已经可以用了)
/usr/local/nginx/sbin/nginx -V可以看到版本已经更新了

回退
1)先还原nginx脚本
cd /usr/local/nginx/sbin
cp -f nginx.old nginx

2)重新唤起旧版本的master进程,让其接收请求
kill -HUP pid
ps -ef | grep nginx可以看到4个进程(新版本已经不可以用了)

3)让新版本的master进程不接收请求,关闭worker进程
kill -USR2 新版本的进程id
kill -WINCH 新版本的进程id
ps -ef | grep nginx可以看到3个进程(新版本的master进程已经备撤销了)
再查看nginx版本,回退到旧版本
/usr/local/nginx/sbin/nginx -v 查看nginx版本
/usr/local/nginx/sbin/nginx -V 查看nginx版本及编译参数等

Nginx限制用户的访问
我们经常会遇到这种情况,服务器流量异常,负载过大等等。对于大流量恶意的攻击访问,会带来带宽的浪费,服务器压力,影响业务, 往往考虑对同一个ip的连接数,并发数进行限制
(1)设置访问的并发量,一秒只能接受一个请求(限制客户端请求的并发量为1个)



测试:

在server1的日志中查看:200表示访问成功,503表示失败

2.设置每秒访问50k

测试:

本文介绍Nginx日志切割技巧,包括按天存放日志、手动切割及脚本自动化,以及Nginx平滑升级与版本回退流程,确保服务连续性。同时,探讨了限制用户访问策略,提高服务器安全性。
275

被折叠的 条评论
为什么被折叠?



