部署过程中表现出的维护页面我一直使用下一个配置在nginx的:nginx的维护页面
if (-f /home/shared/system/maintenance.html) {
return 503;
}
error_page 503 @maintenance;
location @maintenance {
root /home/shared/errors;
rewrite ^(.*)$ /maintenance.html break;
}
而且一切正常,直到我需要添加静态内容维护页面(图片,样式表等)
没有在error.log中有这样的记录静态内容的工作:
2011/05/05 02:47:20 [notice] 13760#0: *6 "^(.*)$" matches "/some.jpg", client: x.x.x.x, server: server.com, request: "GET /some.jpg HTTP/1.1", host: "server.com"
2011/05/05 02:47:20 [notice] 13760#0: *6 rewritten data: "/maintenance.html", args: "", client: x.x.x.x, server: server.com, request: "GET /some.jpg 2 HTTP/1.1", host: "server.com"
这是合乎逻辑 - 如果我做重写一切maintenance.html这意味着静态续恩不排除。
但我不能找到任何合适的解决方案,使重定向到每一个文件,除了其在root /home/shared/errors
文件夹物理存在的。
PS。 /home/shared/errors
不常见的项目文件夹共享任何资源 - 这是完全不同的文件夹中(即使没有任何符号链接/current
为项目
太棒了!谢谢,但有没有解决方案不列出每个文件?这不是问题 - 我有很少的文件,但这将是更好的解决方案... – 2011-05-14 05:42:45
@wile看到我的编辑。 – 2011-05-14 19:49:46
@FrankFarmer有趣的是,你的回答会让我大饱口福,因为我最终想出了完全相同的代码(参见我的[博客文章])(http://www.relativkreativ.at/articles/graceful-error -pages-with-nginx)如果你感兴趣的话)。 – 2014-06-22 16:04:22