# ShortUrlPlatform **Repository Path**: pushaftercommit/short-url-platform ## Basic Information - **Project Name**: ShortUrlPlatform - **Description**: Sass化的短链接生成平台 分表实现可支持数十亿的记录存储 点击统计,点击详情查看 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 0 - **Created**: 2024-03-12 - **Last Updated**: 2025-01-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 操作手册 ## 登录系统 ![输入图片说明](images/Snipaste_2024-03-11_19-50-06.png) ## 创建用户 ![输入图片说明](images/Snipaste_2024-03-11_20-06-20.png) ![Snipaste_2024-03-11_20-07-13](images/Snipaste_2024-03-11_20-07-13.png) ![Snipaste_2024-03-11_20-08-26](images/Snipaste_2024-03-11_20-08-26.png) ## 用户登录 ![Snipaste_2024-03-11_20-10-27](images/Snipaste_2024-03-11_20-13-34.png) ## 创建token ![Snipaste_2024-03-11_20-14-14](images/Snipaste_2024-03-11_20-14-14.png) ![Snipaste_2024-03-11_20-17-17](images/Snipaste_2024-03-11_20-17-17.png) ## 使用token创建短链(一) 测试用例代码位置com.zidong.TestUnit#createShortUrl ![Snipaste_2024-03-11_21-44-31](images/Snipaste_2024-03-11_21-44-31.png) ## 访问短链 ![Snipaste_2024-03-11_21-50-21](images/Snipaste_2024-03-11_21-50-21.png) ## 使用token创建短链(二)使用较长地址 ![Snipaste_2024-03-11_21-52-30](images/Snipaste_2024-03-11_21-52-30.png) ![Snipaste_2024-03-11_21-53-41](images/Snipaste_2024-03-11_21-53-41.png) ## 访问短链 ![Snipaste_2024-03-11_21-55-51](images/Snipaste_2024-03-11_21-55-51.png) ## 查看短链相关信息 ![Snipaste_2024-03-11_22-02-57](images/Snipaste_2024-03-11_22-02-57.png) ![Snipaste_2024-03-11_22-03-59](images/Snipaste_2024-03-11_22-03-59.png) # 部署手册 ## 环境依赖 | 软件 | 版本 | | | ----- | ---- | ---- | | JDK | 8 | | | mysql | 8 | | | redis | 5 | | | nginx | | | ## 其他物料 1. **域名**,至少一个用来对外提供短链服务的域名。 ## 服务目录清单 | 服务模块 | 功能说明 | | | ------------------ | -------------------------------------- | ---- | | manage_platform | 平台管理模块后端服务 | | | manage_platform_ui | 平台管理模块前端UI模块 | | | server | 短链服务端,最终提供短链跳转的功能模块 | | | images | readme图片存放目录 | | | api | 短链创建功能模块 | | ## 构建 ### 服务端服务变量清单 | 变量名称 | 功能说明 | 默认值 | | ------------- | -------------- | --------- | | MYSQL_HOST | mysql主机地址 | N/A | | MYSQL_PORT | mysql端口 | 3306 | | MYSQL_DB_NAME | 数据库名称 | short_url | | MYSQL_USER | mysql用户名称 | root | | MYSQL_PWD | mysql密码 | N/A | | DOMAIN_HOST | 短链服务主域名 | N/A | | REDIS_HOST | redis主机地址 | N/A | | REDIS_PWD | redis密码 | N/A | 说明:变量可通过修改源码设置,也可以通过启动参数注入,此处以启动参数为例 ### 构建服务端服务 ````shell mvn install -DskipTests=true package ```` 构建完成后,分别获取3个服务端jar包 * manage_platform.jar * server.jar * api.jar 分别按顺序启动3个服务 ````shell # 启动manage_platform.jar nohup java -jar manage_platform.jar --MYSQL_HOST= --MYSQL_PWD= --REDIS_HOST= --REDIS_PWD= > ./logs/manage_platform.log 2>&1 & # 启动server.jar nohup java -jar server.jar --DOMAIN_HOST= --MYSQL_HOST= --MYSQL_PWD= > ./logs/server.log 2>&1 & # 启动api.jar nohup java -jar api.jar --DOMAIN_HOST= --MYSQL_HOST= --MYSQL_PWD= > ./logs/api.log 2>&1 & ```` ## 构建前端服务 1. 进入目录manage_platform_ui 2. 执行构建脚本 ````shell npm i npm run build ```` 3. 上传dist目录下文件到nginx目录 /usr/share/nginx/html/manage_platform_ui下 ## nginx配置 manage_platform.conf ````nginx server { listen 80; server_name manage_platform.linka.com.cn; location / { root /usr/share/nginx/html/manage_platform_ui; } location /apis { rewrite ^/apis/(.*) /$1 break; proxy_pass http://127.0.0.1:9091; } } ```` server.conf ````nginx server { listen 80; server_name s.linka.com.cn; location / { proxy_pass http://127.0.0.1:9092; } } ```` api.conf ````nginx server { listen 80; server_name api.linka.com.cn; location / { proxy_pass http://127.0.0.1:9090; } } ```` ## host配置 ![hostsetting](images/hostsetting.png) ## 功能预览 ![hostsetting](images/Snipaste_2024-03-11_19-50-06.png) # QAQ ## Q1.管理员密码忘记怎么办 A1.管理员如果忘记密码,可以使用代码com.zidong.TestUnit#createPwd重新创建密码串,替换到表t_admin的password字段 ![](images/Snipaste_2024-03-16_15-00-08.png) ## Q2.数据库的表该如何创建 A2.数据库表通过liquibase自动创建,在第一次启动manage_paltform服务的时候,所有的表都会被自动创建。 ## Q3.用户密码如何重置 A3.用户密码忘记后,管理员可通过用户列表重置密码按钮重置用户密码,重置后密码初始化,同登录账号 ![Snipaste_2024-03-28_22-51-21](images/Snipaste_2024-03-28_22-51-21.png)