Nginx安全配置

nginx限流配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
limit_req_zone $binary_remote_addr zone=limiter:10m rate=20r/s;
server {
....
location /admin {
proxy_pass http://127.0.0.1:8080;
limit_req zone=limiter burst=1 nodelay;
}
location / {
proxy_pass http://127.0.0.1:9090;
}
}

# 用到的是nginx的限流配置模块limit
# 基于客户原IP地址来限流,限制速率大小是20s/个,10m是会话状态存储的空间
1
2
3
4
5
# 插播点小技巧
# 查看当前tcp连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
# ab命令压测
ab -c 100 -t 10 http://192.168.1.5/test.php
nginx黑白名单
1
2
3
4
5
6
7
8
9
10
11
12
13
server {
....
location /admin {
allow 10.1.1.0/16;
deny all;
proxy_pass http://127.0.0.1:8080;
}
location / {
proxy_pass http://127.0.0.1:9090;
}
}
# 4层和7层限制有些差异,如果要做到更高更精确限制
# 得结合HTTP请求里的一些特殊头信息,比如x-forward-for,或者cookie或其他的自定义变量来设计并实现。
-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。