项目有时候会用到短链接服务,没有找到合适的第三方服务,所以自己写了一个,源码下载在最底下。该服务主要是生成短链接识别码,具体的短链接域名还是需要用自己的,域名解析到服务器里,再通过nginx做一下反向代理即可。
项目基于PHP7.0以上 + SQLlite运行,由于Macbook自带了SQLlite就没有折腾安装了,其它系统安装SQLlite见这里:
确认安装好数据库后,下载源码解压并将源码放到合适的地方,比如:
/var/www/short_url
进入项目根目录,使用以下命令直接启动服务(端口号根据具体情况修改,这里使用8080):
cd /var/www/short_url
php -S localhost:8080
最后一步,将nginx解析到 /var/www/short_url中即可,比如(link.cn为例):
server {
listen 80;
server_name link.cn;
root /var/www/short_url;
index index.php;
try_files $uri /index.php?$args;
# PHP的配置根据服务器的情况来,这里使用了9000端口
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
现在,服务即可正常运行,服务对外暴露一个API用来创建短链接,其地址为:
link.cn/create
我们可以直接post一个 application/json 数据来创建短链接,格式如下:
{
"origin": "https://download.csdn.net/download/weixin_43901089/21118925",
"expire_time": 1631872507
}
附上POSTMAN请求示例:
如果创建成功,将返回数据的 data.code 拼接到域名上,即是最终的短链接,比如:
link.cn/uD5TBt7G
注:请求中的到期时间是一个秒级时间戳,不是毫秒时间戳,到期后对应的短链接即失效。