Nginx:维护页面和本地主机访问

当我准备testing一些变化时,我想我会设置一个维护页面块,以便我可以进行testing。

刚刚意识到,nginx的维护块示例使网站为每个人。

你如何维护网页的访问者仍然会允许本地主机访问。

我应该只是创build一个新的服务器块监听另一个端口,并拒绝所有,允许127.0.0.1?

我这样做的方式是我有两个我的网站,一个是现场的,一个是发展。 我做了一个svn结帐到我的开发,并在那里进行testing,当testing变化和准备好后,我rsync他们到我的生活环境。

有一个维护页面,因为您正在进行更改真的不应该是必要的,除非您正在更改例如查询需要几分钟运行的数据库。

但是要回答你的实际问题,位置块不关心谁在请求页面,只关于URI。 一个解决办法是使用访问模块来拒绝任何人访问,然后将错误页面定义为维护页面。

而不是使用访问模块(如Martin Fjordvaldbuild议),导致403 Forbidden错误,您应该考虑返回一个503 Service Temoporarily Unavailable用与自定义错误页面:

 server { # ... usual configuration here ... error_page 503 @maintenance; # Use this line if page is currently in maintenance mode return 503; location @maintenance { rewrite ^ /maintenance.html break; } }