NGINX解决办法-503-Service.Temporarily.Unavailable

Posted by Yancy on 2016-05-24

503 Service Temporarily Unavailable 解决办法-nginx

因为最近公司微信抽奖活动项目环境 - ginx做负载均衡限制某个IP同一时间段的访问次数。

就是防止有人同一个IP不断请求,网站刷新后经常出现503 Service Temporarily Unavailable错误,有时有可以,联想到最近在nginx.conf里做了单ip访问次数限制.

(limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;) 把这个数量放大后在刷新发现问题解决。

1
2
3
4
5
6
7
8
9
vim nginx.conf
http {
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
添加上面那条语句就行。
include mime.types;
default_type application/octet-stream;

(还顺便把这个改大了 limit_req zone=allips burst=50 nodelay; )
为了证实该问题,反复改动该数量测试发现问题确实在这。这个数量设得太小有问题,通过fiddler发现web页面刷新一下,因为页面上引用的js,css,图片都算一个连接。所以单个页面刷新下就有可能刷爆这个限制,超过这个限制就会提示503 Service Temporarily Unavailable。

这里添加下只能设置什么IP网段可以访问www.jollychic.com。其他的全部拒绝访问80端口这个域名www.jollychic.com。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
listen 80;
allow 218.17.158.2;
allow 127.0.0.0/24;
allow 192.168.0.0/16;
allow 58.251.130.1;
allow 183.239.167.3;
allow 61.145.164.1;
deny all;
server_name www.jollychic.com;
location / {
proxy_pass http://www.jollychic.com;
proxy_set_header X-Real-IP $remote_addr;
limit_req zone=allips burst=50 nodelay;
}
}