前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过Nginx反向代理,重定向链接地址

通过Nginx反向代理,重定向链接地址

原创
作者头像
Java king
发布2023-03-28 15:44:45
2.3K0
发布2023-03-28 15:44:45
举报
文章被收录于专栏:后端Java

对别人的意见要表示尊重。千万别说:“你错了。”——卡耐基

近期遇到个需求,多人协作分享,具体业务这里就不详细介绍了。有一部分业务是需要把分享链接通过公众号、邮箱、短信的方式进行推送,公众号和邮箱都还好 没有字符限制,但短信就会有字符限制,我们使用的阿里的短信服务,通知类型的短信服务是有大概70个字的限制要求,因此咱们的这个链接就不能是全部的链接了,不然一个链接就到了字符限制了,给产品的发挥空间就是0,因此咱们需要把这个链接缩减成极短,怎么做呢?第一想到就是可以使用Nginx的反向代理进行实行。言归正传 直接开始。

原始链接地址:https://baidu.com/c/aFJ@4512 重定向地址:https://baidu.com/share.html#/c/aFJ@4512

以上链接都为虚拟链接。

这样就可以给产品省出一些发挥的空间,当然了上述只是示例,还可以用于其他的业务,举一反三。

Nginx概述

Nginx是一款轻量级的Web服务器和反向代理服务器。它的设计目标是高性能、高并发、低内存占用。因此,Nginx广泛应用于Web服务的负载均衡、反向代理、HTTP缓存以及静态资源服务等场景中。

Nginx具有高度的可扩展性,它可以通过添加模块来实现各种复杂的功能,例如SSL加密、URL重写、请求限流等。

Nginx配置
代码语言:javascript
复制
server {
         listen       443 ssl;
         server_name  ~^(test+.)?\.beta\.baidu\.cn$;
        location ~ "^/c/([a-zA-Z0-9_]{2,11})"{
            # 重定向到 share.html 页面,并在 URL 后面添加原始 URI
            return 301 $scheme://$http_host/share.html#/c/$1;
        }
}

脚本含义

上述脚本定义了一个Nginx服务器的配置,它监听443端口,并设置了一个server_name模式,用于匹配所有以test.或testtest.开头,以.beta.baidu.cn结尾的请求。

该脚本还定义了一个location模式,用于匹配所有以/c/开头,后面跟着2到11位字母、数字或下划线的请求URI。当匹配到该模式时,Nginx会返回301重定向响应,将请求重定向到surveyList.html页面,并在URL后面添加原始URI中的/c/部分。

这个脚本的作用是将URI重定向到一个指定页面,并将原始URI中的参数传递给该页面。例如,如果请求的URI为/c/abc123,Nginx会将其重定向到/share.html#/c/abc123,保留原始URI中的参数abc123。

Location含义及用法

在Nginx配置文件中,location指令用于定义服务器对请求的响应行为。location指令后面跟着的是一个URI模式,它可以是一个字符串或正则表达式。

当请求的URI匹配到某个location模式时,Nginx就会按照该模式下的配置来处理请求。location指令可以设置很多属性,例如root、proxy_pass、rewrite等。这些属性可以控制Nginx对请求的响应行为,例如返回静态文件、转发请求到其他服务器、重写请求URI等。

其他变量

在上述脚本中,还用到了一些重要的变量,它们包括$scheme、$http_host和$1。

  • $scheme变量:该变量表示请求的协议类型,例如http或https。在上述脚本中,$scheme变量被用于构造重定向URI时,以确保使用与原始请求相同的协议类型。
  • $http_host变量:该变量表示请求的主机名和端口号,例如baidu.com。在上述脚本中,$http_host变量也被用于构造重定向URI时,以确保使用与原始请求相同的主机名和端口号。
  • $1变量:该变量表示正则表达式中第一个括号内匹配的内容。在上述脚本中,$1变量被用于提取URI中的参数,然后将其添加到重定向URI中。

这些变量都是Nginx内置的变量,在配置文件中使用时需要加上"$"符号。它们提供了灵活的配置选项,使得Nginx可以根据不同的请求动态地生成响应结果。

总结

Nginx是一款高性能、高可扩展性的Web服务器和反向代理服务器。location指令和正则表达式是Nginx配置文件中常用的关键字,用于控制Nginx对请求的响应行为。在上述脚本中,我们使用location指令和正则表达式来重定向URI,并使用一些重要的内置变量来构造重定向URI。这些技术可以帮助我们更好地控制Nginx的行为,提高Web服务的性能和可靠性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Nginx概述
  • Nginx配置
  • 脚本含义
  • Location含义及用法
  • 其他变量
  • 总结
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档