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配置,使之前的更改生效。
Nginx挂载维护页或返回自定义响应信息的更多相关文章
- .NET Core授权失败如何自定义响应信息?
前言 在.NET 5之前,当授权失败即403时无法很友好的自定义错误信息,以致于比如利用Vue获取到的是空响应,不能很好的处理实际业务,同时涉及到权限粒度控制到控制器.Action,也不能很好的获取对 ...
- Flask Response响应(flask中设置响应信息的方法,返回json数据的方法)
设置响应信息的方法 1. 返回自定义的响应头,有两种方式: (1) 第一种是:视图函数return的时候,使用元组,返回自定义的信息 返回的时候的状态码可以自定义信息:"状态码 自定 ...
- IIS7.0设置404错误页,返回500状态码
一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...
- 【nginx】4xx,5xx 保持自定义header
问题 nginx使用中,如果请求返回的状态code类似404或者50x这种,仍然返回自定义的header. 分析和解决 nginx文档中关于 add_header的部分 有这么一句 Adds the ...
- iis设置404错误页,返回500状态码
一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...
- shiro异步请求返回JSON响应
shiro异步请求返回JSON响应 需求1:当shiro请求资源,但是没有进行认证时,默认是进行重定向,现在需要返回JSON响应.注意异步请求,服务器重定向后,ajax拿到的是浏览器重定向后的到的页面 ...
- REST服务返回自定义的HttpResponseMessage
WebApi框架中对资源的操作,都是通过其Controller提供的各种方法(GET,POST,PUT,DELET等)来实现,而这些方法的返回信息有以下几种形式: 方法返回类型 HttpRespons ...
- [BS-10] 统一设置app所有页面的“返回”按钮样式
统一设置app所有页面的“返回”按钮样式 如果想统一设置app所有页面的“返回”按钮样式,首先自定义WZNavigationController类继承UINavigationController类,然 ...
- Asp.Net MVC如何返回401响应码
需求: 在默认创建的Asp.Net MVC项目中(这里使用VS2013),需要手动返回一个401响应码给浏览器.我们的代码可能是下面这样子的. public ActionResult Un ...
随机推荐
- zTree 优秀的jquery树插件
zTree 优秀的jquery树插件,文档详细,渲染快 使用方法: 1.引用zTree的js和css文件 <link href="~/Content/zTree_v3/css/zTre ...
- iptable用法
一:添加屏蔽IP #禁止此IP访问服务器iptables -I INPUT -s 1.2.3.4 -j DROP或iptables -A INPUT -s 1.2.3.4 -j DROP#禁止服务器访 ...
- pt-query-digest详解慢查询日志(转)
一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdu ...
- 为PHP7安装Windows Server 2012 R2过程记录
因为要安装php-7.0.6-Win32-VC14-x64,需要先安装vcredist2015_x64_14.0.23026.0. 之前安装了Windows Server 2012 R2后,一直无法成 ...
- input 属性radio中设置checked 不生效
同一个页面中有许多地方都用到了单选按钮并设置了默认选中 , 结果在运行的时候发现单选按钮没有被默认选中 由于是复制然后修改个别属性 ,然后直接使用的 , 所以name值忘记修改了 , 单选框是根据na ...
- 从研发到市场,一个C#程序员半年神奇之旅
序 距离上次在博客园发布文章已经过了大约有一年了,由于最近一系列神奇的际遇,让我非常强烈意愿的提起笔来给大家描述我最近一段时间的经历,希望大家根据我的经历做一些参考,我尽量写的逻辑通顺,如果各位兄弟阅 ...
- python五十六课——正则表达式(常用函数之search())
函数:search(regex,string,[flags=0]):参数:和match一样理解功能:从头开始匹配字符串中的数据,如果头不匹配继续往后尝试匹配,直到有第一个匹配成功的子数据,立即返回一个 ...
- POJ1419 Graph Coloring
嘟嘟嘟 求无向图的最大独立集. 有这么一回事:最大独立集=补图的最大团. 所谓的最大团,就是一个子图,满足图中任意两点都有边. 然后ssy巨佬告诉了我一个很没有道理强的做法:随机. 每一次random ...
- Javascript中的undefined、null、""、0值和false的区别总结
在程序语言中定义的各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBN ...
- Oracle 批量生成sys_guid()
select sys_guid() from dual connect by rownum<10