这曾经有效:
server {
server_name example.com;
location / {
proxy_pass http://localhost:8888;
error_page 502 /502.html;
}
location = /502.html {
root /var/www/example;
}
}
现在突然不再有这种现象了...我不知道发生了什么变化?
/var/www/example/index.html
如果端口 8888 没有响应,我会得到 404 而不是显示...
如何让它再次工作?谢谢
答案1
您的大部分内容都位于远程服务器上。您需要在本地提供错误页面(以及一些资源)。您需要一个与上游提供的任何位置不同的“特殊位置”,并将所有本地资源放入其中。我无法为该位置选择一个名称,因为我不知道您从 8888 提供什么。但/error_pages
现在让我们先说说。
server {
server_name example.com;
location / {
proxy_pass http://localhost:8888;
error_page 502 /error_pages/502.html;
}
location /error_pages {
root /var/www/example;
}
}
通过上述配置,您将需要编辑502.html
和更改资源的 URL 以添加前缀/error_pages
。
您还需要将所有文件(502.html
及其资源文件)移动到/var/www/example/error_pages/
子目录中。
答案2
您的配置表明错误文档为。您的配置中任何时候都/var/www/example/502.html
不会尝试加载任何内容。重命名该文件。/var/www/example/index.html