Linux 下利用 Nginx 反向代理 Google 网站
Nginx 服务器的反向代理服务是其最常用的重要功能。反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
本文以反向代理 Google 网站为例,反向代理其他站点也是差不多的方式。
启用 ssl 模块
由于 https://www.google.com 网址用了 https 协议,需要 nginx 启用 ssl 模块,编译 nginx 时加上--with-http_ssl_module 即可。
./configure --prefix=/opt/nginx-1.17.8 --with-http_ssl_module
配置conf
假设我们用域名 us.com 去代理谷歌,nginx 配置的 conf 如下。实际上,只要 proxy_pass https://www.google.com; 就够了,
server {
listen 80;
server_name us.com;
location / {
proxy_pass https://www.google.com;
}
}
如果不想继续配置,可以跳过下面的步骤。
proxy_cache_path /home/test/var/cache/nginx levels=1:2 keys_zone=proxy_cache:10m;
server {
listen 80;
server_name us.com;
location / {
# 加上下面这一行就够了
proxy_pass https://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_cache缓存
proxy_cache proxy_cache;
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_path 必须加上,配置代理缓存的文件目录,其中,/home/test/var/cache/nginx 为目录,可以指定为其他文件目录;proxy_cache 为自定义的名称,必须与 proxy_cache proxy_cache; 一致。
不然会出现以下错误,
nginx: [emerg] "proxy_cache" zone "proxy_cache" is unknown in /opt/nginx-1.17.8/conf/nginx.conf:119
google 网站的代理服务器网址列表
以下几个网址,Linux、Mac OS 和 Windows都能访问,仅供参考,主要是为了方便搜索一些开发学习资源。
以上网址没有指定语言,默认与本地网络环境的语言一致,如果需要搜索结果为英语语言,可以加上参数
hl=en
中文是zh
hl=zh
如以上几个地址,设置成中文语言,会是这样:
英文语言: