我在我的网站服务器上使用 Nginx 作为前端代理。
我想用它来将用户重定向到我的 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;
}
}
如果我取消注释return 503
,将 503 响应发送到客户端,否则发送 Web 应用程序。
我的 PHP 503 错误页面按预期显示,但问题是它有静态资源(css、图像、js),当 Chrome 尝试加载它们时,我收到 503 返回代码。资产位于根目录中。
我怎样才能解决这个问题 ?
有没有比评论/取消评论更好的方法return 503
处理维护和实时模式?
谢谢
经过一番研究,我找到了一种优雅的方法。
来源 :http://blog.mythictechnologies.com/2011/02/10/setting-a-maintenance-page-with-nginx/ http://blog.mythictechnologies.com/2011/02/10/setting-a-maintenance-page-with-nginx/
这是我的新配置
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)
如您所愿,但将文件列入白名单似乎是个好主意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)