java+nginx实现短链接转换功能实现方案

短链接功能实现

背景

现在很多分享的链接过长,在进行营销时短信会进行拆分,给用户造成不良的用户体验,并且需要耗费额外的短信费用,因此出转换成短链接是一个不错的选择。现在已经有很多免费的短链接生成网站,比如新浪短链接生成,免费公开的固然便捷,但缺点也明显,一是自己无法控制,二是无法监控短链接使用次数等相关数据统计,三是安全性无法得到保障。开发一个自己的短链接平台也是很有必要的。

短链接服务器

java+nginx实现短链接转换功能实现方案_第1张图片
短链接服务器群由短链接服务集群、管理端服务集群、应用监控服务器、redis集群、数据库集群和nginx服务器组成。

短链接服务功能

长链接转换短链接

负责对外长链接转换为短链接的功能,由短链接服务调用短链接后端服务接口进行短链接新增功能,对外的长链接转换功能仅提供默认的较低的并发控制,以及固定的24小时时效时间,并对新增IP进行限制,同一IP一天内可访问次数,以保证服务可用程度。

短链接查询原始链接

在进行长短链接转换后,可根据新增的短链接查询原始链接。

短链接转换原始链接

短链接跳转时,先检查niginx缓存,若未命中缓存,则根据nginx路径匹配,跳转短链接服务,进行redis查询,若存在则重定向至原始链接,若不存在则跳转友好页面。

短链接流量监控与预警

  • 监控
  1. 监控与收集正常流量,以做数据分析等
  2. 监控某些异常行为,如同一IP在短时间内大量访问不同的短链接,有脱库可能性的时候。
  3. 监控服务器当前状态
  • 预警
  1. 对服务器状态的预警,当服务出现异常情况,通知相关负责人查看
  2. 对异常行为的预警,及时限制相关访问等

短链接后台管理功能

短链接管理

  • 新增
    • 后端
      1. 新增时采用62进制算法,进行长链接到短链接的转换,6位长度可以达到384E数据量的长度,基本可以忽略碰撞的概率。
      2. 新增时增加起始时间和失效时间,时间可精确到时分秒。
      3. 新增时增加并发控制,在调用接口进行连接转发时进行并发校验。
      4. 新增到数据库后,同步redis。
    • 外部接口
      新增时算法等同于后端,默认失效时间为24小时,最大并发数为2(最低)
  • 修改
    1. 支持已存在短链接修改原始链接的功能
    2. 支持修改起始时间和失效时间。
  • 删除
    对不合法/不再使用的链接进行立即删除功能。

短链接监控面板

通过对服务器的监控,采集相关流量数据,形成监控面板,监控服务器状态、单链接使用情况等功能,后期可用于信息分析等,如活动期间可观察短链接使用次数以确定活动效果等。

权限控制

  1. 通过租户不同,拥有短链接管理的权限不同。可根据租户划分产品以及服务对象。
  2. 同一租户下,不同人员拥有不同的权限,对短链接进行响应管理。
  3. 某些租户在进行短链接转换时,为安全性着想,增加审批功能,审批完成后才可新增短链接成功等。

前端访问地址:http://139.196.150.211:8080/index.html

你可能感兴趣的:(安全类,短链接,nginx,java,服务器)