LOADING

加载过慢请开启缓存 浏览器默认开启

搭建 CORS Anywhere

Gitalk 官方代理使用 Cloudflare,速度过慢,这里介绍一下自己搭建 CORS Anywhere 代理的过程。

1. 下载项目

打开 CORS Anywhere 项目地址,点击右上角 Fork 按钮,点 Create Fork,复制到你的仓库。

在任意位置输入以下命令,克隆项目到本地:

git clone https://github.com/<user>/cors-anywhere.git
cd cors-anywhere

2. 注册 Heroku

CORS Anywhere 是在 Heroku 上运行的,所以要注册一下,在这里注册。

3. 部署代理

打开 Heroku,点击中间的 Create new app 按钮,输入你的项目名称,创建项目。

下载 Heroku CLI,安装完运行 heroku -v检测安装。

然后登陆 Heroku CLI,运行 heroku login -i,填入你的邮箱和密码。

找到你刚才下载 CORS Anywhere 项目的位置,cd 到项目根目录,执行以下命令部署:

git init
heroku git:remote -a <app>
git add .
git commit -am "first commit"
git push heroku master

4. 设置黑/白名单

如果你的 CORS 代理被别人得知,用于许多人的 Gitalk 代理中,你的代理就会很卡,这种情况就要设置访问黑/白名单。

进入你 Heroku 的项目主页,点击右边的 Settings,找到 Reveal Config Vars 按钮,打开配置变量设置。

在左边输入 CORSANYWHERE_BLACKLIST(黑名单)或 CORSANYWHERE_WHITELIST(白名单),在右边输入你要设置黑/白名单的网站域名,要加上 http://https:// 前缀,用 , 分割。

同一个域名要分别用 http://https:// 设置两次,协议不同被视为不同源。

5. 修改 Gitalk 设置

部署完代理,就要修改 Gitalk 了,这里给出了两种方法,根据你主题文件夹 _config.yml 配置选择。

5.1. 主题有 gitalk/proxy 配置

有这个配置当然最好,将其修改为以下内容:

gitalk:
    # ...
    proxy: https://<app>.herokuapp.com/https://github.com/login/oauth/access_token

5.2. 没有 gitalk/proxy 配置

没有配置,就要自己修改了,从你主题文件夹下,找出有类似以下内容的文件,可能细节不太一样

const gitalk = new Gitalk({
    clientID: clientID,
    clientSecret: clientSecret,
    repo: "<%- theme.gitalk.repo %>",
    owner: "<%- theme.gitalk.owner %>",
    admin: ["<%- theme.gitalk.admin %>"],
    language: "<%- theme.gitalk.language %>",
    id: location.pathname,
    distractionFreeMode: false,
});

new Gitalk({...}) 的大括号中添加这一条:

proxy: "https://<app>.herokuapp.com/https://github.com/login/oauth/access_token",

添加完,你文件的 Gitalk 部分应该类似这样:

const gitalk = new Gitalk({
    // something...
    proxy: "https://<app>.herokuapp.com/https://github.com/login/oauth/access_token",
});

这样就配置好了。