本文最后更新于: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; #日本东京都东京 google.com server 172.217.25.68:443 weight =4; #日本东京都东京 google.com server 216.58.200.196:443 weight =4; #日本大阪府大阪 google.com server 216.58.197.4:443 weight =3; #新加坡 google.com server 74.125.130.147:443 weight =2; #美国 google.com server 74.125.28.104:443 weight =1; #美国 google.com server 74.125.28.147:443 weight =1; #美国华盛顿州西雅图 google.com server 172.217.3.196:443 weight =1; }
这个只是个样本,建议根据自己的服务器所在的国家,通过nslookup或者ping命令之类的查询当前国家的google返回的地址进行替换。网上的文章很多代码出处都是一样的,但是在使用的时候最好变通一下,之前的代码或者随着时间变化很多内容可能不一样了。
全部的配置教程可以参考这篇文章:https://zvv.me/mip/1785.html