尝试向 nginx 添加维护页面……但是没有用

尝试向 nginx 添加维护页面……但是没有用

我有这个用于网站的 nginx 配置,该网站有自己的 Web 服务器,也就是说,nginx 作为反向代理工作。

省略了一些配置部分:

$ 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;
    }

但它根本不起作用——当我创建页面时什么也没有发生。

答案1

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

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

这个文件了解详情。

相关内容