我想重新映射Nginx生成的502和504错误,因为它无法成功地与代理进行408错误通信。
要明确的是,当Nginx返回502/504并且没有身体时,它应该返回408并且仍然没有身体。
我尝试添加此指令,但它显然会破坏响应标头:
error_page 502 =408;
error_page 504 =408;
知道如何重新映射Nginx错误代码吗?
答案 0 :(得分:1)
语法:
error_page
代码... [= [回复]] uri ;
您忘记指定uri
参数(您的=408
参数已被解释为 uri )。
<强> UPD:强>
location / {
error_page 502 504 =408 @empty;
}
location @empty {
return 200 '';
}
答案 1 :(得分:1)
从Is it possible to change the HTTP status code returned when proxy_pass gateway is down in nginx?获取灵感,这套指令似乎有效:
location = / {
return 200;
}
location ~ ^[a-z/0-9@A-Z]*$ {
error_page 502 504 =408 /;
(proxy configuration goes here)
}
然而,uri的其他值并没有。