可搜索,可注册,可登录,致敬逗比大佬!尽在救援版逗比根据地 dbgjd.com
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程

Nginx 反代 Google(进阶篇)

News mlone11978 65℃ 0评论

在前面的 基本篇插件篇 中,我都有介绍 Nginx 建立一个 Google 反代的方法。这篇文章会介绍更进阶的配置。

所需准备

这个部分请参看之前的基本篇。

当以上准备完毕后,开始吧!

Nginx 的配置文件

接下来就要进入配置文件 nginx.conf 的编辑

### server 段 ### server {         listen 监听端口;          server_name 你的域名;          # 为了安全考虑(例如 IP 被墙),强烈建议使用 HTTPS         ssl on;         ssl_protocols TLSv1.2;         ssl_certificate ~/站点证书         ssl_certificate_key ~/站点证书密钥          location / {             proxy_pass                          https://www.google.com;              #把返回的 302 重定向的域名替换成你的。这里关闭             proxy_redirect                      off;              #替换指定字符串             sub_filter                          www.google.com 你的域名;             #字符串只进行一次替换,即只替换第一个被匹配的字符串。这里关闭。             sub_filter_once                     off;              # 指定头部:             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";              #把 cookie 的作用域替换成你的域名             proxy_cookie_domain                 www.google.com 你的域名;             #传固定的 cookie 给谷歌,是为了禁止即时搜索,因为开启即时搜索无法替换内容             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";              # 启用 proxy_cache 缓存             proxy_cache                 proxycache;             proxy_cache_valid           304 2h;             proxy_cache_valid           403 444 2h;             proxy_cache_valid           404 2h;             proxy_cache_valid           500 502 2h;             proxy_cache_use_stale       invalid_header http_404 http_500 http_502;             proxy_cache_lock            on;             proxy_cache_lock_timeout    5s;         } } 

其中,我启用了 proxy_cache 这个缓存。关于它的配置方法,请看这里

指定 Google 上游服务器

这里通过在 http 段(即全局配置 nginx.conf)中,配置 upstream 指定域名解析。

指定多个 Google 服务器的 ip 可能能够减少被判异常流量弹验证码的几率。

对于获取 Google 服务器 ip 的方式,这里介绍两种:

  • 在 vps 上多次执行 ping www.google.com
  • 通过 www.ipip.net/dns.php 选择国外节点进行 dns 查询

nginx.conf 中写入配置:

http{      ......      # weight 表示权重,数值越高被分配到的几率越大     #下列 ip 多数为通过 ipip.net 获取     #你也可以自行添加更多 ip      upstream www.google.com {      #中国香港 google.com     server 216.58.221.68:443 weight=6;     #中国台湾 google.com     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;     #美国 我的小鸡 ping www.google.com 所得     server 216.58.217.196:443 weight=1;     server 172.217.11.164:443 weight=1;     #美国 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;      }  } 

为站点启用密码验证

上文已提到,直接反代 Google 会有很高概率被墙(主要以 dns 污染),公共镜像基本活不久
所以为了降低这种几率,且为了满足本文开头所提到的“备用”,可以为你的 Nginx 站点上锁,令其只为你自己服务
启用 Nginx 的 auth_basic 功能:

1.生成密码
因为 Nginx 必须使用 crypt() 函数,将表单提交的密码加密后和存储的密码比对
openssl 的 passwd 命令就能对明文密码进行加密

openssl passwd 

然后会提示输入密码,连续输入两次后,就能得到加密后的密码了,例如:

O6bz.ASDzd.ED 

2.创建认证文件
Nginx 需要指定一个用于比对用户名和密码的认证文件,我们就创建这个文件
认证文件的内容按照 用户名:密码 的格式,文件名可以随意

echo "username:password" > passwdfile 

3.在 Nginx 中加入认证功能
在需要认证的块内:

# 双引号内写入表单的提示语,内容随意 auth_basic "Authorization";  # 这里填入认证文件的绝对路径 auth_basic_user_file .../passwdfile; 

然后重启 Nginx ,就能看到生效后的认证表单了
Nginx 反代 Google(进阶篇)

转载请注明:逗比根据地 » Nginx 反代 Google(进阶篇)

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址