Nginx反向代理谷歌

kevin.Zhu 发布于:2013-1-16 13:29 分类:Nginx  有 15 人浏览,获得评论 0 条  


http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7326b8b96483ec3933fc32c46414565e5a625260d58869e202d16af3f1eaaad7c39200356e2c695dd148aa6866d72c8713b325cdb0b59c418dfdc4151d621e01bbee90ee6cae735e7b9d3a38503009c04456d8081cc1b5754dd6f814764b4fadf&p=87338e1f8c904ead08e2977e0e5493&newp=8b2a971c848b11a05bed97121654bb231610db2151d4d34c2d9c&user=baidu&fm=sc&query=proxy_set_header+user+agent&qid=e795cdce00022d9b&p1=1



Nginx反向代理谷歌

作者: 朱 茂海分类: Nginx发布时间: 2014-06-05 22:34ė387 views650条评论

这几天谷歌都被某墙折腾得不能用了啊。上谷歌搜索资料都要翻越某墙,真悲摧啊。干脆自己用国外的一个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. upstream google {

  9. server 74.125.224.80:80 max_fails=3;

  10. server 74.125.224.81:80 max_fails=3;

  11. server 74.125.224.82:80 max_fails=3;

  12. server 74.125.224.83:80 max_fails=3;

  13. server 74.125.224.84:80 max_fails=3;  

  14. }

  15. server {

  16.        listen      443;

  17.        server_name  www.centos.bz centos.bz;

  18.         ssl on;

  19.    ssl_certificate /usr/local/nginx/conf/centos.crt;

  20.    ssl_certificate_key /usr/local/nginx/conf/centos.key;

  21. location / {

  22.                proxy_cache one;

  23.                proxy_cache_valid  200 302  1h;

  24.                proxy_cache_valid  404      1m;

  25.                proxy_redirect https://www.google.com/ /;

  26.                proxy_cookie_domain google.com centos.bz;

  27.                proxy_pass              http://google;

  28.                proxy_set_header Host "www.google.com";

  29.                proxy_set_header Accept-Encoding "";

  30.                proxy_set_header User-Agent $http_user_agent;

  31.                proxy_set_header Accept-Language "zh-CN";

  32.                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";              

  33.                sub_filter www.google.com www.centos.bz;

  34.                sub_filter_once off;

  35. }

  36. }

解释下吧:

  • 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服务器运维日志,转载时请注明出处及相应链接。

本文永久链接: https://www.centos.bz/2014/06/nginx-proxy-google/