概述
背景
现在开发的项目中,因为项目并非是新开发,是基于公司内部其他团队的项目做二次开发。所以首页的网址是域名+文根+主页的形式。
域名+文根+主页目录
类似于: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详解
- server块、location块和if块中进行配置
- 语法
rewrite regex replacement[flag];
regex
:用于匹配URI的正则表达式。replacement
:将regex
正则匹配到的内容替换成replacement
。flag
:flag
标记。
flag标记:
last
: 本条规则匹配完成后,继续向下匹配新的location URI 规则。break
: 本条规则匹配完成即终止,不再匹配后面的任何规则。redirect
: 返回302临时重定向,浏览器地址会显示跳转新的URL地址。permanent
: 返回301永久重定向。浏览器地址会显示跳转新的URL地址。
遗留问题
- 当使用安全测试工具进行请求劫持转发时,手动删除请求后面的/,界面会报400错误.(未解决)
- 当使用flag设置为permanent时,该条请求会先出现301错误,然后重定向指定页面,查看上一个请求时,会出现openresty的html页面,该页面会暴露项目使用的是nginx。该问题在第1条的400错误中也会出现。(未解决 0.0 大佬路过请留字。)
最后
以上就是欢呼高跟鞋为你收集整理的nginx-重定向-rewrite使用-使用域名直接访问主页nginx实现的全部内容,希望文章能够帮你解决nginx-重定向-rewrite使用-使用域名直接访问主页nginx实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复