使用YOURLS搭建自己的短链接服务

[开源工具] [短连接服务]

前言

在应用的开发过程中,尽管做了较好地设计,但是随着业务的发展,会发现页面路由的长度和参数数量依然会变得很长。在应用内,即使路由的长度很长,开发框架也会帮我们准确的处理。但是如果这个页面需要共享给其他用户,或者需要让用户点击(比如短信中的链接),用户体验就没有那么好了,谁愿意自己的聊天记录里面有3-4行的奇怪文字呢?这个时候就需要短链接服务出场了。

短链接服务为长链接生成一个较短的token(一般为5-7个字母),通过这个较短token生成短链接,通过这个短链接能够重定向到原始的长链接,从而实现缩短链接的目的。目前在博客、短信通知等场景应用广泛。

目前市面上已经有很多成熟的短链接服务可以拿来即用,如bitly,有些甚至还提供免费的服务。如果不想多花钱或者担心免费服务的风险(钓鱼、广告),你可以自己搭建一个自己的短链接服务。

YOURLS就是一个不错的开源短链接服务。

YOURLS

YOURLS,是Your Own URL Shortener的缩写。该项目使用PHP进行开发,在github上有8.1k star(截止2022年5月2日)。功能齐全,有完整的服务API,可以用来集成到业务代码中;自带管理页面,除了管理短链接,还能看到链接访问的统计情况;如果需要更多的功能,社区有很多插件可选,还可以自己实现插件满足更为定制化的需求。

短链接管理页面
短链接访问统计

(以上图片均来自于YOURLS官网)

下面我们就用YOURL来部署一个自己的短链接服务吧。

资源

  1. 官方网址:http://yourls.org/
  2. github:https://github.com/YOURLS/YOURLS
  3. docker镜像:https://hub.docker.com/_/yourls
  4. 插件列表:http://yourls.org/awesome

安装与部署

【推荐】使用docker运行、部署服务。这样无论熟不熟悉PHP,不用关心具体的技术栈,能够更快速的部署与使用。本文将使用docker镜像进行安装。

如果你对PHP相关的技术感兴趣,希望更近一步了解,可以下载源码安装与部署,查看官方的安装文档,本文不对此深入。

1. 配置YURLS

1)下载文件:https://github.com/YOURLS/YOURLS/blob/master/user/config-sample.php
2)将 config-sample.php 更名为 config.php
3)编辑主要配置:

数据库配置:
- YOURLS_DB_USER:MySQL用户名
- YOURLS_DB_PASS:MySQL密码
- YOURLS_DB_NAME:数据库名称
- YOURLS_DB_HOST:数据库地址
- YOURLS_DB_PREFIX:数据库表命名前缀

服务配置:
- YOURLS_SITE:服务的域名;
- YOURLS_PRIVATE:是否私有化,即使用的话是否需要用户名和密码
- yourls_user_passwords:用户及密码配置

目前了解这些配置就足够了。还有一些其他的配置,具体可以查看配置说明

2. 准备docker-compose文件

docker-compose.yml

services:
  mysql:
    image: mysql
    container_name: mysql-yourls
    restart: always
    ports:
      - "3306"
    environment:
      - MYSQL_ROOT_PASSWORD={{your_mysql_conf}}
      - MYSQL_DATABASE={{your_mysql_conf}}
      - MYSQL_USER={{your_mysql_conf}}
      - MYSQL_PASSWORD={{your_mysql_conf}}
    volumes:
      - {{your_file_path}}/data:/var/lib/mysql

  yourls:
    image: yourls
    container_name: short_url_server
    restart: always
    ports:
      - 80:80
    volumes:
      - {{your_file_path}}/config.php:/var/www/html/user/config.php
    depends_on:
      - mysql

注意:

  • 需要将{{}}标记的变量,替换成你自己的;
  • myslq 的容器配置中,使用volumes将数据文件存储到容器外,防止数据丢失;
  • yourls 的容器配置中,使用volumes将自定义配置文件替换容器内配置文件,实现配置服务。

3. 启动容器

docker compose -p yourls up -d

4. 访问服务

容器启动成功后,访问:http://{{your_host}}/admin (本文使用的为localhost),可以进入管理平台。

登录页面
管理页面首页

API使用

使用API可以将短链接服务接入到其他服务中,常用的有:

  1. 缩短链接
GET /yourls-api.php?username={{your_user}}&password={{your_pwd}}&action=shorturl&format=json&url=http://www.baidu.com/ HTTP/1.1
Host: {{your_server_domain}}
  1. 查看原始长链接
GET /yourls-api.php?username=aminer&password=aminer&action=expand&format=json&shorturl=https://u.top3-talent.com/0jieG HTTP/1.1
Host: {{your_server_domain}}

结语

根据上面的介绍,你可以运行一个YOURLS短连接服务了,不过YOURLS的功能远不止于此,你可以在官网发现更多强大的功能。

Awesome YOURLS 中整理了很多topic,包括插件、工具、指导文档,大家可以去探索一下。

你可能感兴趣的:(使用YOURLS搭建自己的短链接服务)