如何为 nginx 错误 502 页面创建自定义内容,并在浏览器中保留原始 URL

如何为 nginx 错误 502 页面创建自定义内容,并在浏览器中保留原始 URL

我正在尝试获取 nginx 错误页面的自定义语言和消息,但在浏览器中保留 url。例如,当我转到 url:xaluan.com/aaa/bbb.html 时,服务器关闭了。nginx 将显示错误 502。使用相同的 url,但自定义消息与我的语言相同。

测试 1.
我在 /usr/local/nginx/html/205.html 创建了一个自定义页面

按照以下配置,但当错误是默认的 nginx 错误(domain.com/50.html)时它会显示在网站上(网页内容与我创建的不一样)

error_page 502 /502.html;
location = /502.html {
root /usr/local/nginx/html;
}

测试 2. 然后我在我的 www 域文件夹 /home/xaluano/public_html/502.html 创建相同的页面,但这会将我重定向到根域.com/502.html,内容现在与我创建的相同。但是.. url 仍然不是我需要的

error_page 502 /502.html;
location = /502.html {
root /home/xaluano/public_html;
internal;
}

编辑更新以获取更多详细信息 2012 年 10 月 6 日 请下载我的 nginx 配置http://pastebin.com/7iLD6WQq 和 vhost 配置如下:http://pastebin.com/ZZ91KiY6

==案例测试..

如果 apache httpd 服务停止:#service httpd stop

然后打开浏览器转到:

xaluan.com/modules.php?name=新闻&file=article&sid=123456

我会在浏览器地址栏中看到相同的 url,但会出现 502 错误

==客户错误页面 我需要在 Apache 失败时提供帮助的配置。显示自定义消息告诉用户等待 1 分钟以便服务恢复,然后使用相同的 URL 刷新当前页面(刷新我可以通过 javascript 轻松完成),Nginx 不会更改 URL,因此 java-script 可以正常工作。

任何帮助都会很棒。提前谢谢

答案1

你可以尝试这个

location / (
error_page 502 @fallback;
)

location @fallback (
proxy_pass http://backend;
)

这不会改变浏览器的 URL

參考文獻:http://wiki.nginx.org/HttpCoreModule#error_page

相关内容