#本文使用了宝塔面板,如不愿使用宝塔面板请自行解决部分技术性问题(例如docker安装,nginx反代)
最近淘了个比较短的域名,没什么用处,就打算搭建一个私人用的短链接服务,然后就找到了Shlink
Shlink 是一个基于 PHP 的开源项目,官网地址:https://shlink.io/,能够提供个人向短链接服务,可通过API、CLI或者web面板进行管理;支持自定义短网址、访问统计、标签管理、访问次数和时间限制、生成短链二维码等功能。建议搭建在国外服务器且仅作为个人服务使用。
如果没注册过的话先注册并登录
点击Generate new license key
按下图所示选择,许可描述随意,点击确定
将生成的许可秘钥记录下来,然后就可以关掉网页了(密钥只会展示一次,请妥善保存)
docker run:
其中的
-p 25600:8080 \ 可以将25600替换为你想要映射的主机端口
-e DEFAULT_DOMAIN=yourshlink.com \ 将yourshlink.com替换为你的域名
-e IS_HTTPS_ENABLED=true \ 如果使用https请填 true
-e GEOLITE_LICENSE_KEY=Ojfxxxxdixxxx3X0 \ 将Ojfxxxxdixxxx3X0替换为你第一步生成的GeoLite2数据库许可证密钥
使用命令行执行修改好的命令,如果出现类似下图的提示
不要惊慌,这证明你的Shlink搭建成功了
接下来使用宝塔面板进行nginx反代(或自行设置反代)
新建一个网站,域名为刚刚docker run 里填的域名
按需决定是否申请ssl证书
设置nginx反代,目标url里的端口就是你自定义的端口,点击提交
这时候访问你的域名,如果显示404(如下图),就代表你反代成功了
如果要使用其他数据库只需要在 docker run 的代码里添加相应的环境变量就可以了,例如
-e DB_DRIVER=mysql \ 为数据库类型
-e DB_PORT=3306 \ 为数据库端口,默认为DB_DRIVER中数据库的默认端口
-e DB_NAME=shlink \ 为数据库中使用的表名
-e DB_USER=root \ 为数据库用户名
-e DB_PASSWORD=123abc \ 为数据库密码
-e DB_HOST=yourdatabase.com \ 为数据库地址
我们先获取 Shlink 的 API密钥
使用命令行运行命令,其中的 my_shlink 为 Shlink 的容器名
得到 Shlink 的 API密钥,记录下来
接下来我们要面临一个选择,是否预配置 Shlink 服务器信息
1.如果没有预配置,那你第一次从浏览器访问 Shlink Web 面板时,需要配置 shlink 服务器信息,这些信息填写后是保存在本地存储中的,那就意味着如果你使用另一台电脑或清空了浏览器cookie,你就需要重新配置 shlink 服务器信息。
2.如果预配置了 Shlink 服务器信息,那就意味着任何一个人如果知道了你的面板地址并且能访问,那他就可以管理你的 Shlink ,所以如果你选择预配置的话那你就需要隐藏你的面板地址,或者限制访问设备,或者将面板地址设置为密码访问。
这样的话搭建起来就比较简单
直接docker run,记得端口和Shlink不能一样
这样的话你可以在docker run的时候直接指定环境变量
-e SHLINK_SERVER_URL=http(s)://yourshlink.com/ \ 是你的shlink的域名
-e SHLINK_SERVER_API_KEY=e51befb9-c5c2-4b**-****-******892927 \ 是上面你获取的 Shlink API 密钥
使用命令行执行修改好的命令,如果出现类似下图的提示则代表你的 Shlink Web 面板搭建好了
接下来我们可以将 Shlink Web 面板进行nginx反代(反代域名不能和 Shlink 的反代域名一样),具体方式参考 Shlink 的 nginx 反代,或者我们不反代,直接访问 IP:端口 来管理 Shlink
访问IP : Web面板端口或反代后的域名访问面板
点击 Add a server
Name 为备注, URL 为Shlink反代后的域名, APIKey 为 Shlink 的 API密钥,点击 Create serve
直接访问即可,在首页就可以添加短链接
如果需要更详细的参数点击 Create short URL 即可,具体功能参考下图谷歌的翻译
List short URLs 里可以管理已经添加的短链接
Manage tags 里可以管理已经添加的标签
Manage domains 里可以管理 shlink 的相关设置
点击上图的Edit redirects即可设置 shlink 域名相关的重定向
腾云先锋(TDP,Tencent Cloud Developer Pioneer)是腾讯云 GTS 官方组建并运营的技术开发者群体。这里有最专业的开发者&客户,能与产品人员亲密接触,专有的问题&需求反馈渠道,有一群志同道合的兄弟姐妹。来加入属于我们开发者的社群吧 。
原文链接:https://cloud.tencent.com/developer/article/2011443