nginx限制并发
http {
include mime.types;
# 区域名称为limit_ip,大小为10m,同一个请求IP限流为每秒1次请求
limit_req_zone $binary_remote_addr zone=limit_ip:10m rate=3r/m;
# 同一个后端URI限流为每秒10次请求
limit_req_zone $uri zone=limit_uri:10m rate=3r/m;
# 设置拒绝请求或延迟处理请求的日志级别
limit_req_log_level error;
# 设置拒绝请求的响应状态码
limit_req_status 503;
# 无延迟限流配置
location ^~/limit/chat/url{
limit_req zone=limit_ip burst=2 nodelay;
limit_req zone=limit_uri burst=20 nodelay;
proxy_pass http://127.0.0.1:9023;
proxy_set_header Host 127.0.0.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_http_version 1.1;
add_header Cache-Control no-cache;
proxy_cache off; # 关闭缓存
proxy_buffering off; # 关闭代理缓冲
chunked_transfer_encoding on; # 开启分块传输编码
tcp_nopush on; # 开启TCP NOPUSH选项,禁止Nagle算法
tcp_nodelay on; # 开启TCP NODELAY选项,禁止延迟ACK算法
keepalive_timeout 300; # 设定keep-alive超时时间为65秒
}
#503限流返回默认值
error_page 503 = /503;
location /503 {
default_type application.json;
add_header Content-Type 'application/json; charset-utf-8';
return 200 '{"code":0,"data":{503 SERVICES},"msg":"宝宝快歇歇吧~!您提交的速度太快啦!公益资源有限制很正常毕竟除了你以外大量白嫖的人都要用,你可给别人留点机会吧,想要无限制还请联系吧主或者up主哦"}';
}
location ^~ /
{
proxy_pass http://127.0.0.1:9023;
proxy_set_header Host 127.0.0.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header REMOTE-PORT $remote_port;
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
add_header X-Cache $upstream_cache_status;
set $static_file15FRNOGX 0;
if ($uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$") {
set $static_file15FRNOGX 1;
expires 1m;
}
if ($static_file15FRNOGX = 0) {
add_header Cache-Control no-cache;
}
}
```
- 点赞
- 收藏
- 关注作者
评论(0)