nginx

Nginx反代实战教程

3093
3
2017-01-04

因为一些特殊的原因,我需要弄一个我司官网的反代
反代嘛,用nginx So Easy啦!
我上来就一个proxy_pass轻松搞定

location / {
    proxy_pass http://new-domain/;
}

看似没什么问题,但是一点链接就露馅了——又跳转到原域名去了
看来是需要替换一下html里的链接地址才行
我上来就一个sub_filter轻松搞定

sub_filter "http://old-domain.com/" "http://new-domain/";
sub_filter_once off; # 进行多次替换
sub_filter_types *;

如果nginx reload时报错sub_filter不存在的话,你可能需要:
Centos下重新编译nginx并添加模块

看起来好像没什么问题,测试一下
然而并没有什么卵用,sub_filter压根没有生效

经过一番Google,原来是因为sub_filter无法替换被压缩(例如gzip)过的页面内容
所以我们需要再加上一句

proxy_set_header Accept-Encoding ""; # 禁止压缩否则无法进行替换

reload一下,测试通过,反代完成~

昵称
邮箱
网址
rilp的头像 2019-06-15 16:15
rilp

为啥本地反代能绕过sni审查

mokeyjay的头像 2019-06-15 20:25
mokeyjay 博主

我没说能绕过sni审查呀?

晨曦的记忆的头像 2017-01-15 13:34

不错哦