Nginx挂载维护页或返回自定义响应信息

在服务停机升级或者服务暂不可用时,往往希望能够返回给用户更为明确和友好的响应信息。可以通过修改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)针对具体应用返回指定静态资源

修改nginx.conf对应应用的location配置:

location /capgate/capTransaction {
        rewrite ^(.*)$ /maintainCap.txt break;
        error_page 405 =200 $uri;
}

(3)针对具体应用返回固定响应信息

修改nginx.conf对应应用的location配置:

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配置,使之前的更改生效。

转载于:https://www.cnblogs.com/oceanbaxia/p/10566345.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值