如何用 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的,所以上面顺便把协议也一起替换了
 }
}

有现成的 nginx 模块,参考 https://github.com/cuber/ngx_http_google_filter_module

连接已重置都是小事情,主要的是谷歌 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;
}