nginx:limit_req导致nginx 503 Service Temporarily Unavailable

一,客户端浏览器报错:

nginx 503 Service Temporarily Unavailable

问题的原因:

http下:

limit_req_zone $binary_remote_addr zone=peripreq:20m rate=10r/s;

此server下:

 limit_req zone=peripreq burst=10 nodelay; 

 此页面上有多个同域名下的css/js/图片/字体文件的连接,
所以等于发起了多个请求,
注意:10r/s,等于每0.1秒进1个请求,加上burst队列的10个请求,
所以大约在加载第11或12个文件时报503错误,

二,解决:

加大burst请求队列后解决,如下:

limit_req zone=peripreq burst=20 nodelay;

事实上这种页面应该做主页面和页面上静态文件的分离,
静态文件单用一台机器或扔到oss/cdn等,
避免导致nginx的限流不好控制

 

posted @ 2024-09-29 16:40  刘宏缔的架构森林  阅读(184)  评论(0编辑  收藏  举报