使用nginx搭建Google反向代理并替换响应内容

Frank发布

最近由于天气原因,Google在国内的访问受到了严重的干扰。为了查点资料就要连VPN或者ss显然太麻烦了(尤其是在移动设备上)。因此我们可以在国外服务器上配置Google的反向代理来实现。

配置Google反向代理.

nginx是一个强大的反向代理服务器。要实现反向代理功能只需要修改nginx的配置文件就可以了。

这是我的配置文件(没有使用SSL,懒得折腾了)

测试并重载nginx配置,试试输入你的域名,应该已经可以正常显示Google的首页了。

替换响应内容.

你已经成功反向代理了Google,这时你可以向网页里添加一些奇怪的东西,或者统计代码,甚至广告。

nginx自带了sub_filter功能,但是这个语句在整个配置文件中只能使用一次。所以我们需要使用ngx_http_substitutions_filter_module这个第三方模块。

如果你的nginx是从软件仓库安装的,只需要执行(debian/ubuntu)

如果你的nginx是编译安装的,请参考这篇文章

比如说我们想要实现这样的效果:

图像 200

我们只需要在上面的配置文件中加这样一句:

意思是将

替换为:

也就是说将

加在</form>标签之前。

统计,广告代码也同理,只需要找到需要加入代码的位置,替换即可。

 


9 条评论

Revgatail · 2014 年 8 月 9 日 下午 11:02

Google Chrome 38.0.2114.2 Google Chrome 38.0.2114.2 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

我的头像可是要收钱的

    Frank  Mod · 2014 年 8 月 11 日 下午 8:41

    Google Chrome 38.0.2114.2 Google Chrome 38.0.2114.2 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

    收多少?450?

      Revgatail · 2014 年 8 月 12 日 下午 2:24

      Google Chrome 38.0.2114.2 Google Chrome 38.0.2114.2 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

      你说的

        Frank  Mod · 2014 年 8 月 12 日 下午 9:53

        Google Chrome 38.0.2114.2 Google Chrome 38.0.2114.2 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

        那就来收吧

猫箱内の巴托拉 · 2014 年 8 月 11 日 上午 12:57

TheWorld Browser TheWorld Browser Windows XP Windows XP

目测很有用的样子,回头试试

技术杂谈 · 2016 年 6 月 23 日 下午 4:04

Google Chrome 46.0.2490.71 Google Chrome 46.0.2490.71 Windows 7 x64 Edition Windows 7 x64 Edition

谢谢!!为了替换页面搞得焦头烂额。

落红逐轻裙 · 2017 年 2 月 24 日 上午 11:32

Google Chrome 56.0.2924.87 Google Chrome 56.0.2924.87 Windows 7 x64 Edition Windows 7 x64 Edition

非常感谢!很直观的替换例子,之前一直想到重定向去了。。

CE.BB.CAT · 2017 年 12 月 28 日 上午 10:35

Google Chrome 63.0.3239.108 Google Chrome 63.0.3239.108 GNU/Linux x64 GNU/Linux x64

楼主哇,替换好像不怎么管用了呢, 我的配置:

[/crayon]

用 Chrome Ctrl+U 看着 script 这个字符串并没有按照预期被替换为ASD

有时间了看一下可以吗?先行谢过

    Frank  Mod · 2017 年 12 月 28 日 下午 12:25

    Google Chrome 65.0.3298.3 Google Chrome 65.0.3298.3 Mac OS X  10.13.2 Mac OS X 10.13.2

    有几种可能性
    1. subs_filter_types里没有加上text/html
    2. 可能服务器开启了gzip,而subs_filter不能处理经过压缩的内容

    另外 sub_filter和 subs_filter是两个模块,所以最后一句once off应该是没有任何作用的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Captcha *

%d 博主赞过: