Nginx实战(一)日志切割+限制用户的访问+获取真实客户端的ip
实验环境:
172.25.70.1 server1 (主nginx)
172.25.70.2 server2
172.25.70.250 真机 (测试设备)
并且关闭三台主机的防火墙,selinx
1.日志切割
日志切割就是把系统的日志以天为单位进行存放,即每一天的日志都分开放
企业当中每天都要备份昨天的日志,然后生成一个新的日志文件记录今天的日志
如果不做日志切割,当日志文件很大的时候,vim打开的时候可能卡死等等
而且日志切割后进行排错的时候也简单,是哪天的问题就查哪天的日志
nginx服务器的日志类型:
日志名称 | 日志类型 |
---|---|
access.log | 存放成功访问nginx服务器的日志信息 |
error.log | 存放访问nginx服务器失败的日志信息 |
nginx.pid | 严格来说这个不算日志,里面存放的是nginx进程的pid |
实验步骤:
1.server1中
cd /usr/local/nginx/
cd logs/
ls #访问日志都在里面
2.在客户端(真机):
ab -c 1 -n 10000 http://www.westos.org/index.html #访问服务端10000次
du -sh access.log #查看文件大小
3.服务端server1中
ab -c 1 -n 100000 http://www.westos.org/index.html
du -sh access.log #查看文件大小
mv access.log `date +%F -d -1day`_access.log #管理日志
nginx -s reopen #重新获得新的access.log文件
2.限制用户的访问
我们经常会遇到这种情况,服务器流量异常,负载过大等等。
对于大流量恶意的攻击访问,会带来带宽的浪费、服务器压力、影响业务,往往考虑对同一个ip的连接数、并发数进行限制。
实验步骤:
1.在serevr1中
vim /usr/local/nginx/conf/nginx.conf
mkdir /usr/local/nginx/html/download/
cd /usr/local/nginx/html/download/
ls
cd /usr/local/nginx/logs
>access.log #清空日志(方便实验效果的观察)
2.在真机下测试第一个参数
ab -c 10 -n 1000 http://172.25.70.1/download/ #模拟10个并发,1次1000次请求
在serevr1中查看日志时,发现503报错
3.在serevr1中限制第二个带宽
连接速度明显变慢
在serevr1中查看日志时,发现503报错
3.获取真实客户端的ip
1.在server2中修改nginx配置文件配置反向代理:
vim /usr/local/nginx/conf/nginx.conf
2.在真机中
vim /etc/hosts
3.在真实服务器中查看日志
发现代理服务器的请求,而不是真实客户端真机的
4.修改server1配置文件,获取真实客户端ip:
vim /usr/local/nginx/conf/nginx.conf
在代理服务器serevr2中
5.在真机测试
6.在真实服务器查看日志,发现是真实客户端发来的请求
这个功能是由模块提供的。