部署過程中表現出的維護頁面我一直使用下一個配置在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