我是靠谱客的博主 欢呼高跟鞋,最近开发中收集的这篇文章主要介绍nginx-重定向-rewrite使用-使用域名直接访问主页nginx实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景

现在开发的项目中,因为项目并非是新开发,是基于公司内部其他团队的项目做二次开发。所以首页的网址是域名+文根+主页的形式。

域名+文根+主页目录
类似于:www.shensiback.com/mall/welcome
其中域名:www.shensiback.com
文根:mall
主页:welcome

客户提了一个新需求,要求直接使用域名就可以访问到应用的首页。

方案

项目组网背景
客户提供域名和ip,公网请求经由F5->SLB->nginx节点->应用节点。
其中客户会在dns对域名和ip进行映射,到达F5或SLB可以保证是准确的ip+port。
相当于应用的门户是nginx。

根据项目的组网、规范和改造难度,准备使用nginx配置来进行重定向跳转。

实现

在https的server配置块中,匹配 / 对应的url,然后将其重定向到应用首页。

server {
	# ip port等配置
	
	# 匹配uri = / 的请求 当你在浏览器中输入网址时,浏览器会在最后默认补充/,
	location = / {
        rewrite ^ https://ip.port/shensiback.com/mall/welcome last;
    }
    
	# 其他upstream、location配置
}

rewrite详解

  1. server块、location块和if块中进行配置
  2. 语法rewrite regex replacement[flag];
  3. regex:用于匹配URI的正则表达式。
  4. replacement:将regex正则匹配到的内容替换成replacement
  5. flag: flag标记。

flag标记:

  • last: 本条规则匹配完成后,继续向下匹配新的location URI 规则。
  • break: 本条规则匹配完成即终止,不再匹配后面的任何规则。
  • redirect: 返回302临时重定向,浏览器地址会显示跳转新的URL地址。
  • permanent: 返回301永久重定向。浏览器地址会显示跳转新的URL地址。

遗留问题

  1. 当使用安全测试工具进行请求劫持转发时,手动删除请求后面的/,界面会报400错误.(未解决)
  2. 当使用flag设置为permanent时,该条请求会先出现301错误,然后重定向指定页面,查看上一个请求时,会出现openresty的html页面,该页面会暴露项目使用的是nginx。该问题在第1条的400错误中也会出现。(未解决 0.0 大佬路过请留字。)

最后

以上就是欢呼高跟鞋为你收集整理的nginx-重定向-rewrite使用-使用域名直接访问主页nginx实现的全部内容,希望文章能够帮你解决nginx-重定向-rewrite使用-使用域名直接访问主页nginx实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部