如何用 Nginx 做 google 镜像站
-
下面是我的配置文件,但只能打开 google 首页,搜索的话会显示连接已重置,求解?有没有做过的大哥解答一下呢?
server { server_name www.example.com; location / { proxy_pass https://www.google.com/; proxy_redirect https://www.google.com/ /; # proxy_redirect off; proxy_cookie_domain google.com www.example.com; proxy_set_header Host "www.google.com"; proxy_set_header Referer https://www.google.com; proxy_set_header Accept-Encoding ""; proxy_set_header Accept-Language "en-US"; proxy_set_header User-Agent $http_user_agent; 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; subs_filter http://www.google.com http://www.example.com; subs_filter https://www.google.com http://www.example.com; sub_filter_once off; # 这里替换网页中的链接,因为我们的镜像站是http的,所以上面顺便把协议也一起替换了 } }
-
连接已重置都是小事情,主要的是谷歌 IP 识别有问题,错误识别国外 IP 为大陆 IP 的话,会跳转到 google.hk ,所以就连接已重置了。
建议改一个其他端口,不要用 443 端口, 自己用,完全没问题,也不影响其他网站搭建。
server { listen 443 ssl http2; #listen [::]:443 ssl http2; server_name 反代玉米; ssl_certificate /usr/local/nginx/conf/ssl/反代玉米证书.cer; ssl_certificate_key /usr/local/nginx/conf/ssl/反代玉米证书.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5"; ssl_session_cache builtin:1000 shared:SSL:10m; # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048 ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem; location / { proxy_pass https://www.google.com; proxy_redirect off; sub_filter_once off; sub_filter "www.google.com" "反代玉米"; proxy_set_header Host "www.google.com"; proxy_set_header Referer $http_referer; proxy_set_header X-Real-IP $remote_addr; proxy_set_header User-Agent $http_user_agent; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header Accept-Encoding ""; proxy_set_header Accept-Language "zh-CN"; proxy_cookie_domain www.google.com 反代玉米; proxy_set_header Cookie "PREF=ID=047808f19f6de346:U=0f62f33dd8549d11:FF=2:LD=en-US:NW=1:TM=1325338577:LM=1332142444:GM=1:SG=2:S=rE0SyJh2W1IQ-Maw"; } access_log /root/log/google.log; error_log /root/log/google_error.log; }
-
有现成的 nginx 模块,参考 https://github.com/cuber/ngx_http_google_filter_module