当前位置:论坛首页 > Linux面板 > 讨论

记一次ngx_http_sub_module 反代无法替换的问题

发表在 Linux面板2020-3-21 00:11 [复制链接] 0 2666

做个记录,踩坑过程~!!


由于项目需要使用Nginx做反向代理时,需要对源站返回的内容做一些替换,这些内容有 HTML,CSS,和JS等,Nginx自带的ngx_http_sub_module 模块可以实现替换的功能。


今天填写好,发现怎么简单的替换也不行,后来百度说要 proxy_set_header Accept-Encoding ''; 让上层服务器返回未压缩的代码。实际上上级服务器并没有跟随客户端进行响应,而且这样非压缩出来的网页带宽成本较高。
继续找解答,发现nginx有个内置模块叫做 http_gunzip_module,服务器做两个站点,一个反代上层+gunzip;另外一个下级反代+ http_sub_module或者其它替换模块,如:replace-filter-nginx-module 。

如果是反代到子目录,可以看演示配置代码,全站反代的话,建2个站点。

# 对上级源站进行解压
location /demo-gzip/ {
        proxy_pass http://192.168.10.21/;        
        gunzip on;
        allow 127.0.0.1/32;
        deny all;
}
# 替换字符串功能
location /demo/ {
        proxy_pass http://127.0.0.1/demo-gzip/;                        
        proxy_set_header Host demo.xxxx.com;
        proxy_set_header Accept-Encoding '';
        subs_filter src_string dst_string;
        subs_filter_types application/javascript text/css;
}

使用道具 举报 只看该作者 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表