我在 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 服务器。而且您已经将其配置为处理静态内容。让它处理动态内容也很容易,对吧?