我尝试将所有404请求代理到回退服务器,也用于主机服务器的php脚本返回的404s。
recursive_error_pages off;
error_page 404 = @missing;
location @missing {
proxy_pass http://anotherserver;
proxy_read_timeout 60s;
}
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php$is_args$args;
}
因此,每当php应用程序返回404时,它都会优雅地回归到其他人,但问题是它无法传递URI,因为它在命名块内。
仅当主机服务器的应用程序返回404时,如何配置nginx代理 anotherserver ?
答案 0 :(得分:0)
您可以使用nginx upstream
在位置块中传递另一台服务器recursive_error_pages off;
error_page 404 = @missing;
upstream anotherserver404 {
server anotherserver.only404.com:80;
}
location @missing {
proxy_pass http://anotherserver404;
proxy_read_timeout 60s;
}
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php$is_args$args;
}