如何让 nginx 反向代理让 503 错误页面传递到客户端?

如何让 nginx 反向代理让 503 错误页面传递到客户端?

我在 nginx 后面运行 Magento(电子商务 PHP 应用程序),作为运行 PHP 应用程序的 Apache 的反向代理。静态内容由 nginx 直接提供。Magento 有一个“维护模式”,它使用 503 HTTP 响应。在我的配置下,当启用维护模式时,nginx 返回带有 500 响应的空白页,而不是带有 503 响应的 Magento 的漂亮维护模式页面。我如何让 nginx 让 503 页面传递到客户端?

这是我的 nginx 配置:

上游示例集群 { 服务器 1.2.3.4:80; }
服务器 {
  听 1.2.3.5:80;
  服务器名称www.example.com;
  根/var/www/example.com/www;

  # 安全
  位置 ~ (/(app/|includes/|lib/|pkginfo/|var/|report/config.xml|downloader/(pearlib|template|Maged)/)|/\.svn/|/\.ht.+) {
    返回 404;
  }

  位置 ~ \.php$ {
    proxy_pass http://示例集群;
    proxy_redirect 默认;
  }

  # 静态内容
  地点 / {
    try_files $uri@apache;
    7天后过期;
  }

  # 阿帕奇
  位置@apache {
    proxy_pass http://示例集群;
    proxy_redirect 默认;
  }
}

答案1

事实证明,在提供 503 页面时确实出现了错误,所以 nginx 最终正确地转发了响应。

但是,相关的 nginx 设置proxy_intercept_errors off;已经是默认设置了。

答案2

我知道这是一个相当老的话题。——但是为什么不让 nginx 同时提供静态和动态内容呢?

我的意思是,nginx 已经是一个可用于运行 magento 应用程序的 Web 服务器。而且您已经将其配置为处理静态内容。让它处理动态内容也很容易,对吧?

相关内容