如何在维护模式下使用Nginx服务静态资产(503)

如何在维护模式下使用Nginx服务静态资产(503),nginx,Nginx,我正在使用Nginx作为我网站服务器上的前端代理。 我想使用它在web应用程序处于活动状态时将用户重定向到我的web应用程序,或者在维护模式下将用户重定向到维护php页面 以下是我的服务器指令: server { listen 443; return 503; error_page 503 @maintenance; root /usr/maintenance; locatio

我正在使用Nginx作为我网站服务器上的前端代理。 我想使用它在web应用程序处于活动状态时将用户重定向到我的web应用程序,或者在维护模式下将用户重定向到维护php页面

以下是我的服务器指令:

server {
    listen               443;

    return 503;
    error_page           503 @maintenance;
    root                /usr/maintenance;
    location @maintenance {
        fastcgi_pass     php-fpm;
        fastcgi_index    index.php;
        fastcgi_param    SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include          /etc/nginx/fastcgi_params;
    }

    location / {
        proxy_pass       https://webapp;
    }
}
如果我取消注释
返回503
,则会向客户端发送503响应,否则会发送web应用程序

我的PHP503错误页面按预期显示,但问题是它有静态资产(css、图像、js),当Chrome尝试加载它们时,我得到503返回代码。这些资产位于根目录中

我怎样才能解决这个问题? 有没有比注释/取消注释
返回503
更好的方法来处理维护和实时模式


谢谢你

经过研究,我找到了一种优雅的方法。 资料来源:

这是我的新配置

server {
    listen               443;

    error_page           503 @maintenance;
    root                /usr/maintenance;
    location @maintenance {
        fastcgi_pass     php-fpm;
        fastcgi_index    index.php;
        fastcgi_param    SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include          /etc/nginx/fastcgi_params;
    }

    location ~* \.(css|png|js|jpg|jpeg) {
        # The file will be returned
    }

    location / {
        return           503;
        proxy_pass       https://webapp;
    }
}
您可以根据需要自由调整正则表达式
\(css | png | js | jpg | jpeg)
,但白名单文件似乎是个好主意