关于nginx的维护页面,最佳实践

我想configuration服务器以显示维护页面。 我试过这个代码,并工作:

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

但是我注意到它会提供一个200的状态代码,这可能会导致search引擎混淆。 我认为最好的做法是返回一个503状态码。 在谷歌我find几个相关的网页,就像这样 。 然而,他们使用如果做redirect,并根据nginx文档使用ifs是不安全的。

有没有办法不使用,如果? 在这种情况下使用安全吗?

谢谢。

我认为最好的做法是返回500个状态码。

我认为你的意思是503而不是500。

他们使用if进行redirect,并根据nginx文档使用ifs是不安全的。

iflocation只有return100%安全的

根据nginx的文档 ,你可以指定一个HTTP状态码作为try_files的最后一个参数。 我试过这个,但没有奏效。

这是我做的。

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

如果文件存在,它将显示维护页面。 一旦你删除文件,你将恢复正常。