美文网首页
使用YOURLS搭建自己的短链接服务

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

作者: 啊阿伟啊 | 来源:发表于2022-05-15 11:39 被阅读0次

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

    前言

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

          本文链接:https://www.haomeiwen.com/subject/edlyoltx.html