Nginx反向代理谷歌

如遇技术问题,请联系博主帮您解决QQ 452336092(添加时注明”付费技术支持”)。

这几天谷歌都被某墙折腾得不能用了啊。上谷歌搜索资料都要翻越某墙,真悲摧啊。干脆自己用国外的一个vps反向代理谷歌吧。下面贴出我反向代理谷歌的nginx配置,造福人类。
假设用www.centos.bz反向代理谷歌,是假设,我可不愿意由于这个博客被墙。

  1. proxy_cache_path  /data/nginx/cache/one  levels=1:2   keys_zone=one:10m max_size=10g;
  2. proxy_cache_key  "$host$request_uri";
  3. server {
  4. listen 80;
  5. server_name www.centos.bz centos.bz;
  6. rewrite ^(.*) https://www.centos.bz$1 permanent;
  7. }
  8.  
  9. upstream google {
  10.  server 74.125.224.80:80 max_fails=3;
  11.  server 74.125.224.81:80 max_fails=3;
  12.  server 74.125.224.82:80 max_fails=3;
  13.  server 74.125.224.83:80 max_fails=3;
  14.  server 74.125.224.84:80 max_fails=3;   
  15.  }
  16. server {
  17.         listen      443;
  18.         server_name  www.centos.bz centos.bz;
  19.          ssl on;
  20.     ssl_certificate /usr/local/nginx/conf/centos.crt;
  21.     ssl_certificate_key /usr/local/nginx/conf/centos.key;
  22. location / {
  23.                 proxy_cache one;
  24.                 proxy_cache_valid  200 302  1h;
  25.                 proxy_cache_valid  404      1m;
  26.                 proxy_redirect https://www.google.com/ /;
  27.                 proxy_cookie_domain google.com centos.bz;
  28.                 proxy_pass              http://google;
  29.                 proxy_set_header Host "www.google.com";
  30.                 proxy_set_header Accept-Encoding "";
  31.                 proxy_set_header User-Agent $http_user_agent;
  32.                 proxy_set_header Accept-Language "zh-CN";
  33.                 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";             
  34.                 sub_filter www.google.com www.centos.bz;
  35.                 sub_filter_once off;
  36. }
  37. }

解释下吧:

  • 1、这里监听了80和443端口,用了ssl加密,高大上。ssl证书是免费的,startssl,自己去申请个吧。
  • 2、定义了个upstream google,放了5个谷歌的ip,如果不这样做,就等着被谷歌的验证码搞崩溃吧。
  • 3、也设置了反向代理缓存,某些资源不用重复去请求谷歌获取,加快搜索速度。
  • 4、proxy_redirect https://www.google.com/ /; 这行的作用是把谷歌服务器返回的302响应头里的域名替换成我们的,不然浏览器还是会直接请求www.google.com,那样反向代理就失效了。
  • 5、proxy_cookie_domain google.com centos.bz; 把cookie的作用域替换成我们的域名。
  • 6、proxy_pass http://google; 反向代理到upstream google,会随机把请求分配到那几个ip。忘记说了,那几个ip可以在自己的vps或服务器上使用nslookup www.google.com获取。
  • 7、proxy_set_header Accept-Encoding “”; 防止谷歌返回压缩的内容,因为压缩的内容我们无法作域名替换。
  • 8、proxy_set_header Accept-Language “zh-CN”;设置语言为中文
  • 9、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”; 这行很关键,传固定的cookie给谷歌,是为了禁止即时搜索,因为开启即时搜索无法替换内容。还有设置为新窗口打开网站,这个符合我们打开链接的习惯。
  • 10、sub_filter www.google.com www.centos.bz;当然是把谷歌的域名替换成我们的了,注意需要安装nginx的sub_filter模块

好了,说明够详细了,祝各位享受到高质量的谷歌搜索。

转载请保留原文链接:Linux运维日志 » Nginx反向代理谷歌

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

评论 54

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 777使用ssl之后还有可能会被墙?回复
    • 朱 茂海可能会人工封锁回复
  2. 777如何关闭安全搜索?你懂的。回复
  3. william你好博主,想问下sub_filter这个模块如何开启,而且server_name www.centos.bz centos.bz;这一句我只填了一个域名,可以么?谢谢 回复
    • 朱 茂海@william 域名数量没关系,编译nginx时,加入编译参数--with-http_sub_module回复
  4. leonVPS是免费的吗? 要是收钱用会划不来吧回复
  5. rocdk890大神 你nginx配置里这句是错误的 proxy_set_header User-Agent $http_user_agent;; 你多了个;哦回复
    • 朱 茂海thanks回复
  6. jiechic有用,已经用上了。。。回复
  7. 谢谢了很好的文章只是ssl'证书不好弄啊 , 非ssl可用吗?回复
    • 朱 茂海申请个startssl,没那么难呢,也可以不用,但还是建议回复
  8. Simon我这里按照博主提供的方法架设了反向代理,但是架设好以后会自动的跳转到 google.com.hk ,然后就无法访问,想请问博主该怎么继续配置才能不跳转?回复
    • 朱 茂海你确定配置文件全部与我的一样?贴出来看看回复
      • Simon@朱 茂海 http://pastebin.kde.org/pk3yzryc2 请帮我看一看,谢谢回复
        • 朱 茂海配置文件应该是没有错误的,你用的是什么浏览器打开?回复
          • Simon@朱 茂海 使用了几种浏览器都不行,而且直接用 https 访问说的是无法连接回复
  9. 豆豆演示:https://wen.lu回复
    • sea@豆豆 求配置文件回复
    • Arnie97@豆豆 这么说问路和awk.so是你搭的喽 :razz: 。 我一直都在用,感觉非常方便,之前都不知道该谢谁。 今天awk.so突然用不了了,返回的是nginx的默认页面,但是一些子域名尚能打开(如谷歌学术搜索)。以后还会继续提供服务吗?回复
  10. 坑货LNMP适用不?回复
    • 朱 茂海适用回复