运行 Nginx 1.4.1 我有以下配置,以防我的后端出现问题,显示自定义错误页面。页面显示,但自定义字体和图像未加载。我的自定义错误页面 (50x.html) 位于 /usr/share/nginx/html/。子文件夹 img 和 fonts 中的静态内容。
从我的浏览器中,我可以看到静态内容 URL 已附加到我当前的 URL,这使它们不可用。例如,如果我正在浏览 www.domain.com/user/account,Nginx 将尝试从服务器加载内容:
URL
/user/account/img/logo.png
/user/account/img/main.jpg
/user/account/img/footer.png
/user/account/fonts/miso-regular-webfont.ttf
而不是来自 sr/share/nginx/html/img/
以下是配置部分:
error_page 324 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
allow all;
internal;
}
谢谢你的灯。
编辑1:
谢谢 Alexey,路径现在正确了,但图片仍然无法显示。当后端第一次出现故障时,Nginx 会尝试从 Apache 获取图片,而 Nginx 应该为整个维护页面提供服务,而不是依赖于后端。为什么会出现这种情况?当后端出现故障时,我不能依赖它,即使是维护页面。
谢谢。
答案1
通过以下方法解决:
error_page 324 500 502 503 504 = @maintenance;
location @maintenance {
root /usr/share/nginx/html;
try_files $uri /50x.html =503;
}