开源短链接生成工具MyURLs安装方法

Dynadot 域名注册 | RackNerd 性价比主机 | 搬瓦工 Bandwagon 高速主机


前言

MyURLs可以方便的生产短网址,生成的短网址可以方便的用于各种平台分享。

比如下图这样可以把网址缩短,如果你有更短的域名那就可以更短。

MyURLs

作者在Github上的说明文档对新手来说可能会有点困难,所以我稍微详细的写一个给新手。


1 部署环境

1.1安装宝塔及LNMP

使用宝塔面板可以让新手更便于后续操作,老手可以跳过。

安装方法从宝塔官网获得。

打开面板WEB前端,根据提示安装LNMP环境

LNMP

各个版本根据自己需求及硬件选择,

因为本文前端是基于Nginx写的,所以,

如果你不懂就尽量保持和我一样,

我的环境如下:

  • Nginx 1.18.0 (必须)
  • MySQL 5.6.50
  • PHP-7.4
  • phpMyAdmin 4.9


1.2 准备域名

准备一个子域名或者主域名,在域名注册商那里先做好解析,因为不同注册商解析生效时间不同,

有些生效时间可能会很长,所以这里提前做一下。


1.3 安装Redis服务

在面板的“软件商店”里,

  • 点击 “已安装”,
  • 点击 “PHP-x.x”,
  • 点击 “安装扩展”,
  • 找到 “Redis”,
  • 点击 “安装”

Redis


2 安装 MyURLs 程序

2.1 安装 MyURLs 后端服务

MyURLs - Github 作者主页 ,上面有docker 和 docker-compose 的安装代码,

也可以前往 Release 下载对应平台可执行文件,

可以使用宝塔文件管理的远程下载,或者下载到本地,再传到服务器。

这里服务器目录以/home/为例,把下载的压缩包传到/home/目录进行解压,

接着启动终端SSH登录,执行以下两行命令

(example.com 即也是返回的短链的域名,使用步骤1.2的域名即可,不需要"http(s)://")

cd /home/myurls
./linux-amd64-myurls.service -domain example.com

执行完,什么都没有返回,处于一个监视状态,此时应该是临时启动服务了。

linux-amd64-myurls.service 必须带 -domain 参数启动,其它参数可以不带,

不带的即是默认的,具体参数如下:

./build/linux-amd64-myurls.service -h

Usage of ./build/linux-amd64-myurls.service:
-conn string
        Redis连接,格式: host:port (default "127.0.0.1:6379")
-domain string
        短链接域名,必填项
-passwd string
        Redis连接密码
-port int
        服务端口 (default 8002)
-ttl int
        短链接有效期,单位(天),默认90天。 (default 90)

2.2 安装 MyURLs 前端WEB

登录宝塔的文件管理,编辑 /home/myurls/public/index.html 文件

  <script>
    const repo = 'https://github.com/CareyWang/MyUrls'
    const backend = 'https://example.com

const backend这里改成自己的域名(步骤1.2那里准备的域名)然后保存。

如果你前端web需要开启SSL那么这里也要写成 https

强烈建议开启SSL。

然后宝塔面板 “网站”-“添加站点”,使用上面的域名建一个站,站点根目录设置为

/home/myurls/public

然后开启SSL,使用Let's Encrypt免费证书即可,并且开启强制https。

接着点下面的“反向代理”,填入后端服务地址和端口,提交即可。

反向代理

此时使用浏览打开你的域名就可以看到前端界面了。


2.3 添加 MyURLs 自启动

新建文件 /etc/systemd/system/myurls.service

写入内容然后保存:

[Unit]
Description=A API For Short URL Convert
After=network.target

[Service]
Type=simple
ExecStart=/home/myurls/linux-amd64-myurls.service -domain example.com
WorkingDirectory=/home/myurls
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

ExecStart=/home/myurls/linux-amd64-myurls.service 后面跟着参数上面步骤2.1讲过了。

接着终端Ctrl+C退出 linux-amd64-myurls.service

更新配置
systemctl daemon-reload

启动服务
systemctl start myurls

设置开机启动
systemctl enable myurls

以下为日常管理命令:

启动服务
systemctl start myurls

停止服务
systemctl stop myurls

重启服务
systemctl restart myurls

查看状态
systemctl status myurls

如果不需要从其他网域调用的话,这就完成了,如果需要从其他域使用,请继续。


3 其他网域调用

如果不加其他配置直接从其他域调用MyURLs会出现不能返回结果的错误,

但是MyURLs后端实际是收到请求并且生成了短链代码,但就是不能返回到其他域。

比如MyURLs作者的 Sub-web

只需要在Nginx的配置文件中配置以下参数:

location / { 
 add_header Access-Control-Allow-Origin *;
 add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
 add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

 if ($request_method = 'OPTIONS') {
  return 204;
 }
} 

也可以在步骤2.2那里的反向代理,点击“配置文件”,

然后把上面代码加进去,再保存即可,这样就可以跨域使用了。

具体参考这篇文章 Nginx配置跨域请求Access-Control-Allow-Origin * 详解


后记

之前自己部署时绕了些弯路,所以希望此文能帮助到大家!

版权声明:
作者:C-PT
链接:https://c-pt.cc/44.html
来源:C-PT – Blog
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录