当前位置: 首页 > news >正文

基于openresty实现短链接跳长链接服务

一、介绍

某些业务场景需要给客户发送短信,短信中包括营销的链接,希望链接为短链接模式,跳转到正常长链接。

二、准备

  • OpenResty
  • Redis

三、实现步骤

1、 创建short_uri.lua脚本

在/opt/openresty/1.13.6.1/nginx/conf/lua下创建short_uri.lua脚本

local redis = require "resty.redis"
local conn = redis:new()
conn:set_timeout(2000)
local ok, err = conn:connect("10.xxx.xxx.xxx","6379")
conn:auth("root123.")
if not ok thenngx.say("failed to connect : ", err)conn.close()return
end
local request_uri = string.match(ngx.var.request_uri, ".*", 2)
local res, err = conn:get("SHORT-URI-"..request_uri);
if res ~= ngx.null thenreturn ngx.redirect(res, 301)
elsengx.exit(ngx.HTTP_FORBIDDEN)conn.close()return
end

2、 修改配置文件nginx.conf

location / {root   html;index  index.html index.htm;
}

修改为

location / {content_by_lua_file conf/lua/short_uri.lua;
}

3、 设置Redis

在redis中设置几个链接

127.0.0.1:6379> set SHORT-URI-xd4Xdhs /backend/admin/log
127.0.0.1:6379> set SHORT-URI-abcd http://www.baidu.com

4、 测试

  • http://10.xxx.xxx.xxx/xxxxx
403 Forbidden
  • http://10.xxx.xxx.xxx/xd4Xdhs

跳转到

http://10.xxx.xxx.xxx/backend/admin/log
  • http://10.xxx.xxx.xxx/abcd

跳转到

https://www.baidu.com/
http://www.dtcms.com/a/568563.html

相关文章:

  • tcl脚本|异步FIFO约束
  • C语言基础之指针
  • 郑州网站制作工具龙岩网站建设馨烨
  • 沈阳网站建设的公司软件网站下载免费
  • iOS SwiftUI 动画开发指南
  • LeetCode算法学习之验证回文串
  • 深入掌握 OpenCV-Python:从图像处理到智能视觉
  • 运输层协议概述及UDP
  • 【多所高校合作】第四届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2025)
  • 什么网站做h5做得好登录不上wordpress
  • 个人制作的网站模板自助建站自己要做网站的来看下
  • 第十五周Fscan和利用漏洞上线远程和数据库提权上线远控
  • 第5章 所有权系统
  • 从零开始学Flink:事件驱动
  • 机器学习实现逻辑回归-癌症分类预测
  • Kafka 从入门到精通完整指南
  • 常见二三维GIS数据分类及处理流程图
  • LLM结构化输出:约束解码、CFG和response_format
  • 做网站麻烦不文山网站建设求职简历
  • wordpress网站静态页面外国食品优秀设计网站
  • hybrid
  • C++中malloc、free和new、delete的区别
  • 计算机视觉:python车辆行人检测与跟踪系统 YOLO模型 SORT算法 PyQt5界面 目标检测+目标跟踪 深度学习 计算机✅
  • 提高肠氧饱和度测量精度的新技术评估
  • 【数据集+源码+文章】基于yolov8+streamlit的12种水果品质、成熟度检测系统
  • Camera参数(3A)
  • 【C++:搜索二叉树】二叉搜索树从理论到实战完全解读:原理、两种场景下的实现
  • 高性能网络编程实战:用Tokio构建自定义协议服务器
  • H265 vs AV1 vs H266帧内块拷贝差异
  • CSS 中 `data-status` 的使用详解