Nginx反代谷歌学术及Pubmed镜像(套Cloudflare)

本地访问谷歌及Pubmed不便,利用VPS的Nginx反代来实现快速访问,套Cloudflare增强防护与访问安全。

首先准备一台能访问谷歌及Pubmed的VPS,安装Nginx环境可以参考官方文档

在Cloudflare中,配置对应子域名的DNS,一个反代网站对应一个子域名。

配置子域名DNS

同时生成对应域名的源证书和私钥,由于只显示一次,一定要保存到文件里(如abc.com.pem和abc.com.key)。将对应的pem和key上传到vps上。记得将SSL/TLS加密模式设为严格。

生成域名源证书

Nginx配置如下:

#谷歌学术
server {

        listen 443 ssl;
        http2 on;

        ssl_certificate    /home/sslcert/abc.com.pem;#对应的证书位置
        ssl_certificate_key    /home/sslcert/abc.com.key;#对应的证书私钥位置

        server_name gsr.abc.com;
        location / {
            proxy_pass https://scholar.google.com;
            proxy_redirect off;
            proxy_set_header Host scholar.google.com;
            proxy_set_header Accept-Encoding "";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            sub_filter https://scholar.google.com https://gsr.abc.com;
            sub_filter_once off;
            sub_filter_types *;
        }
    }

#Pubmed
server {

        listen 443 ssl;
        http2 on;

        ssl_certificate    /home/sslcert/ezycast.de.cert.pem;
        ssl_certificate_key    /home/sslcert/ezycast.de.cert.key;

        server_name pmd.ezycast.de;
        location / {
            proxy_pass https://pubmed.ncbi.nlm.nih.gov;
            proxy_redirect off;
            proxy_set_header Host pubmed.ncbi.nlm.nih.gov;
            proxy_set_header Accept-Encoding "";
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            sub_filter https://pubmed.ncbi.nlm.nih.gov https://pmd.ezycast.de;
            sub_filter_once off;
            sub_filter_types *;
        }
    }

如果有多个镜像,可以写多个server模块:

server {

        ......


        }
    }

server {

        ......


        }
    }

修改后执行nginx -s reload重新加载即可。

可选项:为了进一步确保真实服务器只响应来自 Cloudflare 转发的请求,我们可以在 Nginx 的配置文件中增加对于允许访问 IP 地址的限制。将Cloudflare官方公布的IP添加到allow-cloudflare-ip-only.conf中,放置在 /etc/nginx 目录下。

# allow-cloudflare-ip-only.conf
# https://www.cloudflare.com/ips
# IPv4
allow 103.21.244.0/22;
allow 103.22.200.0/22;
allow 103.31.4.0/22;
allow 104.16.0.0/12;
allow 108.162.192.0/18;
allow 131.0.72.0/22;
allow 141.101.64.0/18;
allow 162.158.0.0/15;
allow 172.64.0.0/13;
allow 173.245.48.0/20;
allow 188.114.96.0/20;
allow 190.93.240.0/20;
allow 197.234.240.0/22;
allow 198.41.128.0/17;

# IPv6
allow 2400:cb00::/32;
allow 2606:4700::/32;
allow 2803:f800::/32;
allow 2405:b500::/32;
allow 2405:8100::/32;
allow 2a06:98c0::/29;
allow 2c0f:f248::/32;

外部配置文件需要在nginx.conf中引用。

http{

... 

include /etc/nginx/allow-cloudflare-ip-only.conf;

}

可能遇到的问题:

1.谷歌学术弹reCaptcha:偶尔弹一次可能是请求过多,等几天再用。一直弹就是IP质量不行被当成公共代理了,建议联系vps厂家更换IP。

2.提示502 Bad Gateway:检查配置,DNS解析记录是否正确,源证书的权限是否正确(设为读写600或者执行700),Nginx配置文件书写有无错误(每次保存后都reload一下刷新配置)。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇