nginx限流与配置管理

nginx限流与配置管理,第1张

nginx限流与配置管理

nginx限流与配置管理

一、nginx限流

1.控制单ip并发连接数2.控制单位时间的请求数3.限制带宽 二、nginx配置管理

1.自动索引2.Nginx expire(到期)缓存配置3.日志轮询4.状态模块激活5.禁用不必要日志6.站点目录和文件的访问限制6.中文乱码7.限制ip8.ssl模块 三、goaccess日志可视化

一、nginx限流

在nginx发布目录下创建一个目录,并存储一张照片进行测试

创建目录
[root@server1 html]# pwd
/usr/local/nginx/html
[root@server1 html]# ls
50x.html  index.html
[root@server1 html]# mkdir download

从宿主机传一张大小为828k的照片
[root@server1 html]# cd download/
[root@server1 download]# ls
1.jpg
[root@server1 download]# du -h 1.jpg 
828K	1.jpg

1.控制单ip并发连接数
[root@server1 conf]# pwd
/usr/local/nginx/conf
[root@server1 conf]# vim nginx.conf

http模块添加:
 limit_conn_zone $binary_remote_addr zone=addr:10m;
 $binary_remote_addr 表示通过remote_addr这个标识来做限制,nginx的内部变量,取的是远端客户端的地址
 zone=addr:10m	表示创建一个大小为10M,名字为addr的内存区域
 可以多开几个内存区域进行不同限制

location /download {
limit_conn addr 1;	#限制并发连接数为1
}

*压力测试

[root@westos_student73 mnt]# ab -c10 -n10 http://172.25.254.11/download/1.jpg 
#通过客户端进行ab压测,-c表示并发数,-n表示访问十次、
[root@server1 conf]# cat /usr/local/nginx/logs/access.log 
#nginx查看访问日志

客户端

2.控制单位时间的请求数



测试

[root@westos_student73 mnt]# ab -c1 -n10 http://172.25.254.11/download/1.jpg
并发数改为1,防止前面设置影响实验结果

设置生效前

设置生效后

[root@server1 conf]# nginx -t
nginx检测是否有设置错误
[root@server1 conf]# nginx -s reload
nginx重新加载


[root@server1 conf]# cat /usr/local/nginx/logs/access.log

[root@server1 conf]#   > /usr/local/nginx/logs/access.log 
清空一下访问日志
[root@server1 conf]# cat /usr/local/nginx/logs/access.log 

排队设置
测试效果

限流是为了一些情况下,服务器不崩溃

3.限制带宽


测试

二、nginx配置管理 1.自动索引
用处:下载方便
location /download {
	autoindex on;
	#打开自动索引
}

效果

2.Nginx expire(到期)缓存配置
缓存可以降低网络带宽,加速用户访问,一般主要用于静态空间,网站图片不怎么修改的地方,比如网站公司介绍
location ~ .*.(gif|jpg|png)$ {
             expires 365d;
             root html;
}

3.日志轮询

大量访问会导致ningx日志增长特别块,一些门户型站点,比如阿里每天的匹配量过亿。所以日志需要经常截断。

创建脚本
[root@server1 logs]# cat /opt/nginx_log.sh 
#!/bin/bash
cd /usr/local/nginx/logs && mv access.log access_$(date +%F -d -1day).log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

赋予执行权限
[root@server1 logs]# chmod +x /opt/nginx_log.sh 

加入crontab定时任务
[root@server1 logs]# crontab -e
[root@server1 logs]# crontab -l
00 00 * * * /opt/nginx_log.sh &> /dev/null

为了安全,日志目录不给nginx用户访问权限
chmod -R 700 /usr/local/nginx/logs

创建脚本
加入定时任务

4.状态模块激活
location /status {
		stub_status on;
}

效果

5.禁用不必要日志
 location /status {
		stub_status on;
		access_log off;
}

6.站点目录和文件的访问限制
loaction ~ ^/images/.*.(sh|php)${
		deny all;
}
^表示匹配以什么开头,.*.匹配的是以什么结尾
上边表示的是在/images/目录下以sh或者php结尾的文件都不能访问


6.中文乱码
charset utf-8;


7.限制ip
location / {
		deny 172.24.254.73;
		allow 172.25.254.11/24;
		deny all;
}

if ($remote_addr=172.25.254.73){
		return 403;
}
#使用正则表达式,如果远程主机是172.25.254.73访问,返回403,和deny类似。
8.ssl模块




三、goaccess日志可视化

软件安装

下载安装包
[root@server1 ~]#ssh root@172.25.254.73
[root@westos_student73 ~]# cd /mnt/
[root@westos_student73 mnt]# scp goaccess-1.4.tar.gz root@172.25.254.11:/root

[root@server1 ~]# tar zxf goaccess-1.4.tar.gz #解压
[root@server1 ~]# cd goaccess-1.4
[root@server1 goaccess-1.4]# ./configure  --enable-utf8 --enable-geoip=legacy
[root@server1 goaccess-1.4]# yum search geoip
[root@server1 goaccess-1.4]# rpm -q GeoIP.x86_64

[root@server1 goaccess-1.4]# ssh root@172.25.254.73
[root@westos_student73 ~]# cd /mnt/
#下载所需软件
[root@westos_student73 mnt]# scp GeoIP-devel-1.5.0-13.el7.x86_64.rpm  root@172.25.254.11/root
[root@server1 ~]# rpm -ivh GeoIP-devel-1.5.0-13.el7.x86_64.rpm #安装

[root@server1 goaccess-1.4]# ./configure  --enable-utf8 --enable-geoip=legacy
[root@server1 goaccess-1.4]# yum provides */ncursesw
[root@server1 goaccess-1.4]# yum install -y ncurses-devel
[root@server1 goaccess-1.4]# ./configure  --enable-utf8 --enable-geoip=legacy

[root@server1 goaccess-1.4]# make
[root@server1 goaccess-1.4]# make install

[root@server1 html]#goaccess /usr/local/nginx/logs/access.log -o /usr/local/nginx/html/report.html --log-format=COMBINED --real-time-html
ctrl + z
[root@server1 html]# bg #打入后台运行,会时刻监控日志变化







展示效果

测试

[root@westos_student73 mnt]# ab -c10 -n200 http://172.25.254.11/index.html

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5703617.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存