本文最后更新于:2024年11月13日 下午
                
              
            
            
              nginx 代理google搜索 
为了能够正常访问google进行搜索,之前一直用的ssh转socks代理。后来觉得如果s2主机只用来做代理,有点浪费了。于是就想了干脆反向代理一个google搜索。网上相关的文章比较多,随便搜索一下就可以找到相关的代码。基于nginx的主要配置代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 proxy_cache_path  /tmp/accounts levels=1 :2  keys_zone=cache:10m  max_size=10g  inactive=60m  use_temp_path=off ;server  {server_name  h4ck.ws;location  / {proxy_redirect  off ;proxy_cache  cache;proxy_cache_valid    200  304  12h ;proxy_cache_valid    any 10m ;proxy_cookie_domain  google.com h4ck.ws;proxy_pass  https://www.google.com;proxy_connect_timeout  20s ;proxy_read_timeout  600s ;proxy_send_timeout  600s ;proxy_set_header  Host "www.google.com" ;proxy_set_header  User-Agent $http_user_agent ;proxy_set_header  Referer https://www.google.com;proxy_set_header  Accept-Encoding "" ;proxy_set_header  X-Real-IP $remote_addr ;proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for ;proxy_set_header  X-Forwarded-Proto https;proxy_set_header  Accept-Language "zh-CN" ;sub_filter  https://www.google.com https://h4ck.ws;sub_filter  https://www.google.co.jp https://h4ck.ws;sub_filter_once  off ;addition_types  *;
不过今天在使用的时候发现搜索按钮不好使了,又跳回到了google的连接。一直没想明白问题出在什么地方,知道晚上开了代理之后发现跳转的连接是流量异常被检测到限制了(我们的系统检测到您的计算机网络中存在异常流量。此网页用于确认这些请求是由您而不是自动程序发出的。为什么会这样?):
猜测是因为上面的代码设置了cookie导致的,如下一行:
1 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 给谷歌,是为了禁止即时搜索,因为开启即时搜索无法替换内容”。但是具体看一下这个cookie的内容就会发现1325338577这个unix对应的时间是2011-12-31 21:36:17。一个是时间比较久远,另外一个是网上所有的google代理 可能用的都是这个cookie。我直接禁用之后搜索就正常了。
如果要想更高级一点可以通过配置nginx的upstream实现负载均衡等,配置信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 upstream www.google.com { server  216.58.221.68:443 weight =6; server  74.125.23.99:443 weight =5; server  172.217.25.68:443 weight =4; server  216.58.200.196:443 weight =4; server  216.58.197.4:443 weight =3; server  74.125.130.147:443 weight =2; server  74.125.28.104:443 weight =1; server  74.125.28.147:443 weight =1; server  172.217.3.196:443 weight =1;
这个只是个样本,建议根据自己的服务器所在的国家,通过nslookup或者ping命令之类的查询当前国家的google返回的地址进行替换。网上的文章很多代码出处都是一样的,但是在使用的时候最好变通一下,之前的代码或者随着时间变化很多内容可能不一样了。
全部的配置教程可以参考这篇文章:https://zvv.me/mip/1785.html