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

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

配置Google反向代理.

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

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

server {
listen 80;
server_name 【你的域名】;

location / {
proxy_redirect http://www.google.com/ /;
proxy_cookie_domain google.com 【你的域名】;
proxy_pass http://173.194.127.48;
proxy_set_header Accept-Encoding "";
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Language "zh-CN";
proxy_set_header Cookie "PREF=ID=047808f19f6de346:U=0f62f33dd8549d11:FF=2:LD=zh-CN:NW=1:TM=1325338577:LM=1332142444:GM=1:SG=2:S=rE0SyJh2W1IQ-Maw";
sub_filter www.google.com 【你的域名】;
sub_filter_once off;
}
}

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

替换响应内容.

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

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

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

sudo apt-get install nginx-full

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

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

图像 200

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

subs_filter </form> '<br><center>蛤蛤蛤蛤蛤蛤蛤</center></form>';

意思是将

</form>

替换为:

<br><center>这是一个蛤蛤蛤蛤蛤蛤蛤</center></form>

也就是说将

<br><center>这是一个蛤蛤蛤蛤蛤蛤蛤</center>

加在</form>标签之前。

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

 

Show CommentsClose Comments

9 Comments

  • CE.BB.CAT
    Posted 2017 年 12 月 28 日 at 上午 10:35 0Likes
    Google Chrome 63.0.3239.108 Google Chrome 63.0.3239.108 GNU/Linux x64 GNU/Linux x64

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

                   subs_filter_types text/css text/xml text/javascript;
                    subs_filter www.google.com domain.com;
                    subs_filter script 'ASD';
                    sub_filter_once off;
    

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

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

    • Frank
      Posted 2017 年 12 月 28 日 at 下午 12:25 0Likes
      Google Chrome 65.0.3298.3 Google Chrome 65.0.3298.3 macOS   10.13.2 macOS 10.13.2

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

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

  • 落红逐轻裙
    Posted 2017 年 2 月 24 日 at 上午 11:32 0Likes
    Google Chrome 56.0.2924.87 Google Chrome 56.0.2924.87 Windows 7 x64 Edition Windows 7 x64 Edition

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

  • 技术杂谈
    Posted 2016 年 6 月 23 日 at 下午 4:04 0Likes
    Google Chrome 46.0.2490.71 Google Chrome 46.0.2490.71 Windows 7 x64 Edition Windows 7 x64 Edition

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

  • 猫箱内の巴托拉
    Posted 2014 年 8 月 11 日 at 上午 12:57 0Likes
    TheWorld Browser TheWorld Browser Windows XP Windows XP

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

  • Revgatail
    Posted 2014 年 8 月 9 日 at 下午 11:02 0Likes
    Google Chrome 38.0.2114.2 Google Chrome 38.0.2114.2 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

    我的头像可是要收钱的

    • Frank
      Posted 2014 年 8 月 11 日 at 下午 8:41 0Likes
      Google Chrome 38.0.2114.2 Google Chrome 38.0.2114.2 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

      收多少?450?

      • Revgatail
        Posted 2014 年 8 月 12 日 at 下午 2:24 0Likes
        Google Chrome 38.0.2114.2 Google Chrome 38.0.2114.2 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

        你说的

        • Frank
          Posted 2014 年 8 月 12 日 at 下午 9:53 0Likes
          Google Chrome 38.0.2114.2 Google Chrome 38.0.2114.2 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

          那就来收吧

Leave a comment