【问题标题】:nginx as load balancer server out 404 page based on HTTP response from app server基于来自应用服务器的 HTTP 响应的 nginx 作为负载均衡器服务器输出 404 页面
【发布时间】:2013-06-19 02:48:03
【问题描述】:

我使用Nginx 作为负载平衡器,后面有应用服务器。如果应用程序服务器返回 404 未找到响应,我希望 nginx 然后在该服务器上提供一个本地 404 页面。我想这样做,这样我的应用服务器就不会被绑定在提供静态 HTML 文件中,而是可以快速返回响应并让 nginx 处理提供静态内容的服务。有谁知道我怎么能做到这一点?基本上我需要某种基于 HTTP 响应的条件检查。这可能吗?谢谢!

【问题讨论】:

    标签: nginx proxy http-status-code-404 load-balancing appserver


    【解决方案1】:

    只需将 proxy_intercept_errors 选项设置为 on 并为其创建一个 nginx 错误页面。

    error_page 404 /404.html;
    
    proxy_intercept_errors on;
    

    为确保 nginx 从其文档根目录提供静态文件,您还必须指定以下内容:

    location /404.html {
        internal;
    }
    

    我在这里假设 nginx 被配置为作为代理与您的应用服务器通信,因为这是通常的方式,而您的问题没有提到任何这些。

    【讨论】:

    • 我使用 nginx 作为我的应用服务器的代理服务器。但是,当我按照您的建议进行更改时,如果它从应用服务器接收到 404,它将从应用服务器请求 404.html,而不是在本地提供它。然后由于我的应用服务器没有 404.html,第二次将只提供通用 nginx 404 页面。你知道我如何从 nginx 用作代理的服务器本地提供 404 文档吗?
    • 这个答案与你的结合使我得到正确答案:serverfault.com/questions/426347/nginx-reverse-proxy-error-page
    猜你喜欢
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    相关资源
    最近更新 更多