在服务停机升级或者服务暂不可用时,往往希望能够返回给用户更为明确和友好的响应信息。可以通过修改Nginx配置文件,达到返回自定义信息的效果。有如下几种配置方式:
(1)Nginx接收到的所有请求,都返回指定的静态资源(静态维护页面或文本)。
修改Nginx.conf,在server配置中添加如下配置。其中/maintain.html是针对于Nginx静态资源根目录(一般为/usr/local/Nginx/html)的相对路径,同时由于Nginx不允许静态资源响应POST请求(会报"HTTP 405 Method Not Allowed"错误),故需将405响应改为200。
server { listen 9000; server_name www.example.com; # ... 此处省略原有配置 # 所有页面都转跳到维护页 rewrite ^(.*)$ /maintain.html break; #由于Nginx不允许静态文件响应POST请求,故此处将“405 not allowed”修改为“200 ok” error_page 405 =200 $uri; # ... 此处省略原有配置 }
(2)针对具体应用返回指定静态资源
location /capgate/capTransaction { rewrite ^(.*)$ /maintainCap.txt break; error_page 405 =200 $uri; }
(3)针对具体应用返回固定响应信息
location /cashier { add_header Content-Type 'text/html; charset=utf-8'; return 200 'returnCode=600002&returnMessage=系统维护中(8:50-9:40),请稍后再试!System Maintaining(8:50-9:40), try it later!'; }
如果需要在header中添加更多信息,例如报文签名,可通过add_header进行指定:
location /new_mca { add_header Content-Type 'text/html; charset=utf-8'; add_header sign 'Tnzlr/doh7jZpg0ZKPkpjgAT9cMrf8p+a1gCxgwWAmiPNTd1jzFSQRoAxZLTgRAD6kLIIWYsq32XMLi6NObxHuFIpVNJAvmkLODXvA2O7K12qcsvSJn3Io31IMegBAY6dkjelBnHlh/9bkmjKPSziUZ94ZoaOBW4jpkJJ7sstLc='; return 200 '{"body":{"USER_ID":"","USER_NO":"","NEW_DEVICE_FLG":"","USER_NAME":"","LOG_FLAG":"","USR_GROUP":"","USER_STATE":""},"responseHeader":{"SUPPORT_VERSION":"","SERVER_TIME":"","RSP_CD":"999999","RSP_MSG":"系统维护中(8:50-9:40),请稍后再试!System Maintaining(8:50-9:40), try it later!"}}'; }
(4)针对不同http响应码指定返回信息
error_page 501 502 503 504 505 @maintain; location @maintain { rewrite ^(.*)$ /maintain.html break; } error_page 405 =200 $uri;
注:Nginx.conf配置文件在Nginx安装目录的conf目录下,修改完后,进入sbin目录,执行./Nginx -t命令检查配置文件格式是否正确,确认正确后,执行./Nginx -s reload命令重新加载Nginx配置,使之前的更改生效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。