nginx自定义返回报文 作者: morningp 时间: 2021-10-19 分类: 建站相关 nginx作为一款强大且灵活的web service,通过不同的配置可以实现不同程度的自定义设置,这边就记录一下怎么自定义nginx返回报文。 ### - **起因** 是这样的,今天发现Windows用来检测网络联通性的域名好像被墙了....具体请看[v2帖子][1],无奈先在编辑注册表改成了`www.msftconnecttest.com`这个域名,具体大概就是 win+r 打开regedit,定位到 ` HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet` 下,然后改成大概这个样子:  然后重新连接大概就可以了。然后我想了一下,既然可以改域名,不如自己搭建一个!~~顺便还可以水一篇博客~~ ### - **nginx自定义返回报文** 参考了知乎的[这篇专栏][2],可以看出连接是由ActiveWebProbeHost和ActiveWebProbePath拼接出来的,具体形如 `http://ActiveWebProbeHost/ActiveWebProbePath` 这样子,对,没有https,还是http,所以还是纠结了一下要不要自建... 既然可以指定path,其实还是可以的,通过拼接目前可以用的 `www.msftconnecttest.com` 这个域名可以发现,其实真的就是返回了Microsoft NCSI这个字符串:sweat_smile: 那么接下来就很好办了。首先你的域名不能加密码,这边是建议新做个解析,毕竟生产上的东西不强制转跳443还是有点...然后在 ``` server { listen 80; server_name your.domain.com; index index.html index.php index.htm; } ``` 这里加入 ``` location /yourPath { add_header Content-Type 'text/html; charset=utf-8'; return 200 'defineReturn'; } ``` 可以顺手把index那行给注释了。 那么可能有的同学要问,这个除了做这个还有什么用呢? ### - **应用** 那这个用处就比较大了,比如对于某网页的某些页面加载提示消息,类似: ``` location /maintain { rewrite ^(.*)$ /maintain.html break; error_page 405 =200 $uri; } ``` 对于维护的页面通过rewrite来返回正常的页面并且将405错误复写为200正常返回。 [1]: https://v2ex.com/t/806309?fbclid=IwAR3ECfwOcnEOypMddJ2vj6BbGdOAC0GZLMRn-7wJxA7TwtjD3nkIk9379f0 [2]: https://zhuanlan.zhihu.com/p/82351762 标签: none