nginx返回错误代码,该代码在服务器范围内映射了命名位置
我使用命名位置根据特定条件将请求转发到特定的命名块。 这就是我当前配置的样子nginx返回错误代码,该代码在服务器范围内映射了命名位置,nginx,Nginx,我使用命名位置根据特定条件将请求转发到特定的命名块。 这就是我当前配置的样子 server { listen 8080; server_name localhost; error_page 420 = @handler; location / { if ($http_x_client = 'handler'){ return 420; } error_page 500 =
server {
listen 8080;
server_name localhost;
error_page 420 = @handler;
location / {
if ($http_x_client = 'handler'){
return 420;
}
error_page 500 = @fallback;
proxy_intercept_errors on;
proxy_pass http://www.example.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location @fallback{
proxy_pass http://www.example2.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location @handler{
proxy_pass http://www.example3.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
现在,当我点击包含标题X_Client=handler的页面时,它返回420状态,而不是@handler块。
我已经把范围缩小到了线路的问题
error_page 500 = @fallback;
是否有人知道此配置有什么问题,或者这是预期的nginx行为?引用自:
只有在当前级别上未定义error\u页面
指令时,才会从上一级别继承error\u页面
指令
这是nginx中大多数指令的基本规则