背景

  • 短链接服务
  • yourls 是开箱即用的短链接服务
  • 我们在正式环境上用于把过长的「分享主播链接(携带有参数)」,缩短为一个短链接

部署步骤

① helm 下载yourls官网chart

1
2
3
helm repo add yourls https://charts.yourls.org/
helm pull yourls/yourls
tar xvf yourls-1.3.0.tgz

② 更改 values.yaml 文件(有更改的部署罗列如下)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 1. 变化1:基础配置
yourlsSite: http://s.***tech.com  # 对外域名
yourlsUsername: admin         # 管理员账号
yourlsPassword: Q28D***HrHM8  # 管理员密码
yourlsTablePrefix: tbl_

 1. 变化2:额外的环境变量
extraEnv:
 - name: YOURLS_PRIVATE
  value: 'true'
 - name: YOURLS*URL*CONVERT
  value: '62'
 - name: YOURLS_COOKIEKEY
  value: yxnQbHUuRvqu8u9****b5APge5KZ88EN

 1. 变化3:设定连接的数据库
externalDatabase:
  host: mysql-rw.***.io
  user: admin
  password: "*****" # 数据库密码

 1. 变化4:禁用 mariadb
mariadb:
  enabled: false
  replication:
    enabled: false

 1. 变化5:使用ClusterIP服务
service:
  type: ClusterIP
  port: 80
  httpsPort: 443
  annotations: {}

 1. 变化6: 设定 ingress nginx 路由
ingress:
  enabled: true
  certManager: false
  annotations: {}
  hosts:
  - name: s.***tech.com # 对外域名
    path: /
    tls: false

附件中有两个文件,使用它们对比一下会更直观

1
2
values.yaml # 原始文件
values.test.yaml # 测试环境中使用的文件

③ 使用helm执行部署

1
2
cd yourls
helm -n ***-prod install yourls . -f values.prod.yaml 

④ 初始化 yourls

  1. 打开网页 http://s.***tech.com/admin/,点击 INSTALL

  2. 更新数据库信息

1
2
3
4
5
     - 将起始值调大
update tbl*options set option_value = 20201231 where option_name = 'next*id';

     - 删除默认的记录
delete from tbl_url;

⑤ 验证短链接服务可用

1)获得访问签名密钥 http://s.***tech.com/admin/tools.php

得到如下一段信息

Your secret signature token: 069***27b8 (It's a secret. Keep it secret) ...

密钥是069***27b8 // 示例

2)编写 python 测试程序

1
2
3
4
5
6
import requests, json

url = "http://s.***tech.com/yourls-api.php?signature=069cec27b8"
data = {"url":"http://www.google.com","format":"json","action":"shorturl"}
response = requests.get(url, data)
print(json.loads(response.text))