如何在维护模式下使用Nginx服务静态资产(503)
我正在使用Nginx作为我网站服务器上的前端代理。 我想使用它在web应用程序处于活动状态时将用户重定向到我的web应用程序,或者在维护模式下将用户重定向到维护php页面 以下是我的服务器指令:如何在维护模式下使用Nginx服务静态资产(503),nginx,Nginx,我正在使用Nginx作为我网站服务器上的前端代理。 我想使用它在web应用程序处于活动状态时将用户重定向到我的web应用程序,或者在维护模式下将用户重定向到维护php页面 以下是我的服务器指令: server { listen 443; return 503; error_page 503 @maintenance; root /usr/maintenance; locatio
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)
,但白名单文件似乎是个好主意