我正在尝试为在维护期间向我的应用程序提出请求的客户提供维护页面。以下是我为此目的的 nginx 配置。
server {
recursive_error_pages on;
listen 80;
...
if (-f $document_root/maintenance.html) {
return 503;
}
error_page 404 /404.html;
error_page 500 502 504 /500.html;
error_page 503 @503;
location = /404.html {
root $document_root;
}
location = /500.html {
root $document_root;
}
location @503 {
error_page 405 =/maintenance.html;
if (-f $request_filename) {
break;
}
rewrite ^(.*)$ /maintenance.html break;
}
}
Run Code Online (Sandbox Code Playgroud)
假设我通过创建$document_root/maintenance.html. 这个文件中,正确地,是当用户与请求服务Accept的报头text/html。
$ curl http://server.com/ -i -v -X GET -H "Accept: text/html"
* Adding …Run Code Online (Sandbox Code Playgroud)