Nginx

nginx 的維護頁面,最佳實踐

  • April 10, 2020

我想將伺服器配置為在存在時顯示維護頁面。我嘗試了這段程式碼並且有效:

location / {
   try_files /maintenance.html $uri $uri/ @codeigniter;
}

但我注意到它會提供一個 200 狀態程式碼,它可能會導致搜尋引擎混淆。我認為最好的做法是返回 503 狀態碼。在Google上我找到了幾個相關的頁面,就像這樣。但是,他們使用 if 進行重定向,並且根據 nginx 文件,使用 ifs 是不安全的。

有沒有不使用if的方法?如果在這種情況下使用安全嗎?

謝謝。

我認為最佳做法是返回 500 狀態碼。

我認為您的意思是 503 而不是 500。

他們if用來進行重定向,根據 nginx 文件,使用 ifs 是不安全的。

不,只有在上下文中return100% 安全if的。location

根據nginx 文件,您可以將 HTTP 狀態程式碼指定為try_files. 我試過這個,但沒有用。

這就是我所做的。

           if (-f $document_root/maintenance.html) {
                   return 503;
           }
           error_page 503 @maintenance;
           location @maintenance {
                   rewrite ^(.*)$ /maintenance.html break;
           }

如果文件在那裡,它將顯示維護頁面。刪除文件後,您將恢復正常。

引用自:https://serverfault.com/questions/310819