我有一个简单的配置文件,用于维护时自定义503错误页面.相关部分是这样的:
server {
listen 80 default;
root /usr/share/Nginx/html;
server_name example.com;
location / {
if (-f $document_root/503.json) {
return 503;
}
}
# error 503 redirect to 503.json
error_page 503 @maintenance;
location @maintenance {
rewrite ^(.*)$/503.json break;
}
}
最佳答案
我今天碰到了这个.似乎问题是由于Nginx(像大多数服务器一样)不让你POST到静态文件.
The solution is to capture 405 errors in your @503 location block,serving
the maintenance page. In addition,you will have to enable
@recursiveerrorpages@,since you are first,intentionally,throwing a
503 error,and then the user is throwing a 405 by posting to your
static file:
recursive_error_pages on;
if (-f $document_root/system/maintenance.html) {
return 503;
}
error_page 404 /404.html;
error_page 500 502 504 /500.html;
error_page 503 @503;
location @503 {
error_page 405 = /system/maintenance.html;
# Serve static assets if found.
if (-f $request_filename) {
break;
}
rewrite ^(.*)$/system/maintenance.html break;
}
资料来源:https://www.onehub.com/blog/2009/03/06/rails-maintenance-pages-done-right/
原文地址:https://www.jb51.cc/nginx/434497.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。