Nginx
1.安装优化
Nginx编译安装Lua
Nginx编译安装
nginx-quic/http3.0
2.基本配置
Nginx server配置文件匹配规则
Nginx负载均衡配置
Nginx基于域名配置虚拟主机
Nginx中Location的匹配
Nginx的Rewrite重写
Nginx日志切割
Nginx通过keepalived实现高可用
Nginx动态缓存
Nginx配置Https
反向代理http2.0
将a域名请求转发到b域名下同子域
泛域名代理配置
Nginx配置文件中的header变量
3.PHP-FPM
PHP-FPM性能优化
4.安全配置
Nginx请求方法限制
lua waf
5.模块使用
http_sub_module
本文档使用 MrDoc 发布
-
+
首页
http_sub_module
# http_sub_module 可以根据条件来替换response body中的关键字,可以用来打码,修改响应内容等,比如网站突然改了域名,那么就以旧域名为关键字替换为新的域名,或者关于某某的内容需要隐藏我们就替换为`■`等等。 `I'm ■■!` 比如将本站使用的项目MrDoc的首页替换为本站的IP。 只需要在相应的nginx配置文件中添加sub_filter_*相关配置即可: ``` location / { proxy_pass http://10.1.2.3:10000; proxy_buffering off; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 避免后端返回gzip内容,会导致无法替换,应该与下面的more_clear_headers一同使用 proxy_set_header Accept-Encoding ''; # 避免浏览器解析nginx返回的数据错误"net::ERROR_CONTENT_DECODING_FAILED 200" more_clear_headers 'Content-Encoding'; # 替换的响应类型,*好为全部 sub_filter_types *; # 只替换content-type为text/css中的内容 # sub_filter_types text/css; # 替换的关键字以及替换后的内容 sub_filter 'wiki.ihoiwan.com:3002' 'wiki.ihoiwan.com:3002'; # 替换一次即结束?off为全部替换 sub_filter_once off; } ``` # 问题 在使用模块时可能会遇到下面的报错: ![](/media/202206/2022-06-17_154817_855033.png) 此时我们看到资源的响应中`Content-Encoding: gzip`,那么极有可能是因为浏览器拿到的数据实际上不是gzip压缩后的数据,不需要用gzip解压后decode而是元数据,浏览器直接decode即可。 ![](/media/202206/2022-06-17_155811_426507.png) 这时候就要增加另一个模块`headers-more-nginx-module`的配置:`more_clear_headers 'Content-Encoding';`,用来清掉`Response Header`中的`Content-Encoding`,让浏览器正确的知道nginx返回的是元数据而不是压缩后的数据。 如此就能解决响应数据编码不一致的问题。
zhangky
2022年6月19日 11:44
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码