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",
});
这样就配置好了。