注意:这篇文章上次更新于799天前,文章内容可能已经过时。
摸鱼时光发现了一篇折腾 VPS 的博客,上面写着用 nginx 反代 GitHub,可以用于 GitHub 的下载加速,并且说理论上可以做任何网站的镜像。于是我也简单操作了一下。
操作步骤
-
环境安装
用 nginx 反向代理,自然需要安装 nginx 了,我这里使用的宝塔面板一键安装的 LNMP 环境。
-
准备一个域名并且解析到服务器上。
-
新建一个网站。
-
部署 SSL 证书,宝塔面板一键申请即可。
-
添加反向代理。
完成后,就可以通过域名访问 GitHub 了。
缺陷
但是这种方还是有很多缺点,比如说不支持 git clone 命令,只能通过点击页面上的 Download ZIP 来下载代码。
其实在这篇博客里也提供了反向代理的配置文件,并且这种方式是支持 git clone 的,但是不支持页面上的搜索功能,可能是少配置了什么。
所以在搜索和 git clone 之间我选择了搜索,其实我觉得是可以兼得的,等我研究研究再说。
除此之外像是图片等资源也是无法正常显示的,因为它来自别的地方。
登录账户也别想了,这只是用来下载的。
使用方法
如果你看到了 https://github.com/Hello/Cuffs 这样的链接,但是你打不开。那么你可以尝试把 github.com 换成 github.dijk.eu.org 。在新的页面点击下载按钮进行代码下载。
除此之外,我还反代了 Google 搜索,大家可以使用 https://google.cuffs.cf 访问谷歌。
youtube 和 谷歌学术的反代尝试都失败了,看了一些博客感觉很复杂,放弃了。
总结
记录一下反代过程
总体来说就是反代两个地址,分别是
Nginx 配置文件如下:
server {
#省略
#反代配置
location ^~ / {
proxy_pass https://github.com;
proxy_set_header Host github.com;
proxy_set_header X-Real-IP ;
proxy_set_header X-Forwarded-For ;
proxy_set_header REMOTE-HOST ;
add_header X-Cache ;
#Set Nginx Cache
#解决pjax问题
proxy_hide_header x-pjax-url;
add_header x-pjax-url "https://github.dijk.eu.org";
#raw替换
proxy_redirect https://raw.githubusercontent.com https://raw-github.dijk.eu.org;
proxy_set_header Accept-Encoding "";
sub_filter_once off;
sub_filter "//github.com" "//github.dijk.eu.org";
sub_filter "//raw.githubassets.com" "//raw-github.dijk.eu.org";
set 0;
if ( ~* "\.(gif|png|jpg|css|js|woff|woff2)$" ) {
set 1;
expires 12h;
}
if ( = 0 ) {
add_header Cache-Control no-cache;
}
}
#省略
}
server {
#省略
#raw反代配置
location ^~ / {
proxy_pass https://raw.githubusercontent.com;
proxy_set_header Host raw.githubusercontent.com;
proxy_set_header X-Real-IP ;
proxy_set_header X-Forwarded-For ;
proxy_set_header REMOTE-HOST ;
add_header X-Cache ;
#proxy_hide_header content-security-policy;
#proxy_hide_header Strict-Transport-Security;
#proxy_hide_header set-cookie;
#proxy_hide_header x-pjax-url;
#Set Nginx Cache
set 0;
if ( ~* "\.(gif|png|jpg|css|js|woff|woff2)$" ) {
set 1;
expires 12h;
}
if ( = 0 ) {
add_header Cache-Control no-cache;
}
}
#省略
}