Nginx 未将服务器错误重定向到自定义页面

chr*_*mbo 1 nginx docker nginx-config

我在 docker 中配置了 Nginx,将错误 500 重定向到自定义页面 (500.php),但此错误没有被重定向到我的自定义页面。您能帮忙吗?

以下是我在 .docker/conf/nginx 中的配置

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name localhost;

    root /var/www/html/;


    location / {
        error_page 500 = /500.php;
    }
}
Run Code Online (Sandbox Code Playgroud)

Neo*_*son 5

您在 nginx 配置中缺少proxy_intercept_errors指令:
确定是否应将代码大于或等于 300 的代理响应传递给客户端,或者拦截并重定向到 nginx 以使用error_page指令进行处理。

server {
    [...]
    proxy_intercept_errors on;
    error_page 500 = http://example.org;

    location / {
        proxy_pass http://example.org;
    }
    [...]
}
Run Code Online (Sandbox Code Playgroud)