前言
在公司科学上网使用谷歌经常出现很长一段时间访问不了,严重影响工作效率,没办法只能自己搭建一个镜像网站。
正文
环境
安装 nginx
1
| $ sudo apt install nginx
|
增加 nginx 配置
在 /etc/nginx/sites-enabled
文件夹内新增 google.conf
配置文件,配置文件内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| server { server_name www.example.com; location / { proxy_pass https://www.google.com/; proxy_redirect https://www.google.com/ /; proxy_cookie_domain google.com www.example.com; proxy_set_header User-Agent $http_user_agent; 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 # 设置这个可以避免一些情况下的302跳转,如果google服务器返回302 redirect,那么浏览器被跳转到google自己的域名,那就没的玩了 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; subs_filter http://www.google.com http://www.example.com; subs_filter https://www.google.com http://www.example.com; # 这里替换网页中的链接,因为我们的镜像站是http的,所以上面顺便把协议也一起替换了 } }
|
注:请手动更改配置中的 www.example.com 为自己的域名地址
载入配置
使用下列命令重新载入配置
添加 DNS 解析记录
将自己的域名添加一条指向该台服务器 IP 的 DNS 解析记录,访问域名即可实现访问谷歌。
增加 Basic Auth 认证
如果不想自己的谷歌镜像被别人乱用,可以增加 Basic Auth 来限制其他人使用。
生成密码
使用下列命令生成密码:
1
| $ printf "your_username:$(openssl passwd -crypt your_password)\n" >> /etc/nginx/conf.d/passwd
|
配置 Nginx
用 vim 修改刚刚的配置文件
1
| $ vim /etc/nginx/sites-enabled/google.conf
|
增加下列内容
1 2 3 4 5 6 7 8
| ...
location / { auth_basic "Hello World"; auth_basic_user_file conf.d/passwd;
proxy_pass https://www.google.com/; ...
|
然后 nginx -s reload
重启 Nginx 生效。
参考
- Nginx 搭建 Google 镜像站
- 为 Nginx 添加 HTTP 基本认证(HTTP Basic Authentication)