试图添加一个维护页面到nginx …但它不工作

我有这个nginxconfiguration网站,它有自己的networking服务器,也就是说,nginx正在作为代理反向工作。

一些configuration部分被省略:

$ cat /etc/nginx/sites-available/default server { listen 80 default_server; [.........]; return 301 https://$server_name$request_uri; } server { listen 443 ssl; [.........]; return 301 https://my_website.com$request_uri; } server { listen 443 ssl default_server; [.........]; location / { [.........]; proxy_redirect http://localhost:1234 https://my_website.com; } location /assets/ { alias /opt/my_website/assets; } 

现在我试图添加一个维护页面:

  location / { [.........]; proxy_redirect http://localhost:1234 https://my_website.com; } location /assets/ { alias /opt/my_website/assets; } # here it is if (-f /opt/my_website/maintenance_on.html) { return 503; } error_page 503 @maintenance; location @maintenance { rewrite ^(.*)$ /maintenance.html break; } 

但是,这根本行不通 – 当我创build页面时什么也没有发生。

rewrite指令产生URI。 您需要一个root指令将其转换为本地path名:

 location @maintenance { root /opt/my_website/html; rewrite ^ /maintenance.html break; } 

详情请参阅此文件 。