即使文件不存在,Nginx 代理仍可通过

即使文件不存在,Nginx 代理仍可通过

我的 nginx 配置中有这段代码

server {
    server_name example.org;
    listen 80;
    listen [::]:80 ;
    root /var/www/;
    index index.html index.htm index.nginx-debian.html index.php;

    location / {
        proxy_pass http://198.25.34.19;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_bind $server_addr;
        proxy_buffering off;
    }
}

上面的代码可以正常工作!但如果文件不存在,则重定向不起作用。

我该如何修复这个问题?如果文件在当前服务器上不存在,我想重定向。

谢谢。

答案1

如果您想在反向代理中处理 404 响应,则需要拦截它们。请参阅这个文件了解详情。

例如:

location / {
    proxy_pass http://...;
    ...
    proxy_intercept_errors on;
    error_page 404 =302 /some/other/page;
}

相关内容