前言
一直想拥有自己的短链接服务,但是这几年确实没找到好看又好用的服务,直到看到 Sink 这款开源项目。Sink 是直接部署在 Cloudflare Pages 上的,并且整个部署流程 10 分钟就上线了,使用了几天后,整体体验非常不错,本文就介绍整个部署流程,同时还可以进行反向代理提高访问速度。
设置流程
前期准备
- GitHub 账号
- Cloudflare 账号
GitHub Fork 项目
首先登陆你的 GitHub,访问 https://github.com/ccbikai/sink 并 fork 该项目。
Cloudflare 配置
登陆 https://dash.cloudflare.com 选取你现有的域名,或者添加新域。
复制保存你的Account ID
,同时点击获取您的 API 令牌
。
点击创建令牌
选择阅读分析数据和日志
使用模版
随意修改下名称
其他无需修改,点击继续
。
创建令牌
复制保存API 令牌
Cloudflare Pages 部署
登陆 https://pages.cloudflare.com - 选择 Pages - 连接到 Git
连接到 GitHub
授权
选择刚才 fork 的仓库,开始设置。
框架预设
选择Nuxt.js
添加以下3
个变量:NUXT_SITE_TOKEN
为你的管理员密码,请自行创建,长度尽量长些,否则可能会登陆失败。NUXT_CF_ACCOUNT_ID
上文获取的 Account ID。NUXT_CF_API_TOKEN
上文获取的 API 令牌 Token。
取消部署
取消构建
取消部署后,点击左侧的存储和数据库 - KV
并创建。
添加一个名为sink
的命名空间。
创建成功
回到 Pages,点击项目名称。
设置 - 绑定 - 添加
选择KV 命名空间
变量名称直接复制大写的KV
,不要改为其他的。命名空间选择刚才创建的sink
,保存。
再次添加Works AI
。
变量名称直接复制大写的AI
,不要改为其他的,保存。
如果你是 Cloudflare 付费用户,可以再次添加Analytics Engine
。
由于我不是会员,无法点进去查看设置方法,具体的请访问 https://github.com/ccbikai/sink 里的 Deployment 步骤会有设置方法。
添加完成
回到部署
标签,重试部署。
开始部署,等待几分钟就部署完毕。
访问 Pages 域名成功
点击Dashboard
,输入上文设置的密码登陆。
尝试添加短链接,可以自定义Slug
后缀和有效期。
完成
添加域名
添加域名有两种方式,第一种是直接在 Cloudflare 里添加域名,设置好域名CNAME 解析
就可以访问了,但是 Cloudflare 在国内访问比较佛系。如果你有对国内线路更优质的服务器,例如香港服务器,也可以在服务器上做反向代理,体验会更好。
Cloudflare 添加域名
自定义域 - 设置自定义域
填写你的域名 - 继续
开始 CNAME 设置
根据提示设置你的域名CNAME
,等待一会提示成功。
完成域名配置
使用新域名访问登陆,存在的短链接也都会自动变为新域名。
Nginx 反向代理
如果你有更好线路的服务器,可以在该服务器配置 nginx 反向代理到 Pgaes 里的域名,以下为配置参考,把sink-72b.pages.dev
改为你的 Pages 域名即可。
location / {
proxy_pass https://sink-72b.pages.dev;
proxy_set_header Host sink-72b.pages.dev;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_ssl_name sink-72b.pages.dev;
proxy_ssl_server_name on;
add_header X-Cache $upstream_cache_status;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 304 301 302 120m;
expires 12h;
}
结语
最后注意,如果不是 Cloudflare 付费会员,没有办法添加Analytics Engine
,那么短链接的访问数据分析将无法显示,但是这并不影响正常使用,这个服务仅自己私有使用,Cloudflare 的免费用户的相关配额是足够使用了。