我有nginx安装程序传递到上游使用代理传递。 上游写入返回502 http响应对某些请求,而不是返回502与所有标题我想nginx recoginse这个并返回444,所以没有返回。 这可能吗?
我也尝试在任何50x错误上返回444,但是它也不起作用。
location / { return 444; } location ^~ /service/v1/ { proxy_pass http://127.0.0.1:3333; proxy_next_upstream error timeout http_502; error_page 500 502 503 504 /50x.html; } location = /50x.html { return 444; } error_page 404 /404.html; location = /404.html { return 444; }
如果后端实际上返回了502,并且它不是由nginx在内部生成的,因为后端不可访问,那么您需要打开proxy_intercept_errors以使error_page指令生效。
对的,这是可能的。 根据error_page的文档,可以这样做…
error_page 500 502 503 504 =444 /50x.html;
以同样的方式
error_page 404 =444 /404.html;
所以,你的整个样本configuration将变成…
位置 / {
返回444;
}
位置^〜/ service / v1 / {
proxy_pass http://127.0.0.1:3333;
proxy_next_upstream错误超时http_502;
error_page 500 502 503 504 = 444 / 50x.html;
}
error_page 404 = 444 / 404.html;