nginx 关键配置
http {
limit_req_zone $binary_remote_addr zone=limit:50m rate=10r/m;
server {
server_name xxx;
error_page 503 @503;
location @503 {
rewrite ^(.*)$ /503.html break;
}
error_page 405 @405;
location @405 {
rewrite ^(.*)$ /503.html break;
}
}
}
问题一:为啥限流时 POST 请求不返回 503 而是返回 405 ?
问题二:为啥重写 405 不生效呢?
1
lululau 2022-01-17 18:30:41 +08:00 1
curl -XPOST xxx/503.html
|
2
mahyclarv OP 已经解决了
``` location @503 { if ( $request_method = POST ) { return 503; } rewrite ^(.*)$ /503.html break; } ``` 猜想是 post 请求触发限流时,经过重写后请求内容已经变成了 503.html 静态文件,因此才触发的 405 规则,因此需要直接返回 503 状态码 |
3
mahyclarv OP |