nginx 301永久定向

本文详细介绍了在nginx中遇到的301永久重定向问题,包括配置不当导致的端口变化和项目名匹配错误。通过分析配置文件,提出了正确的解决方案,强调了正则表达式在匹配路径中的作用,以及如何避免不必要的重定向问题。

    对于nginx,大家已经如雷贯耳。但大多数人像我一样只是停留在配置使用阶段。对于出现问题不知道如何定位问题,只能是百度,遵循前人的经验。或者打开官方网站查找。昨天我们上线就遇到了一个nginx配置不当引发301问题

    问题描述:新系统上线完后,发现通过域名访问时而好用(mgmt.jerry.com/demo/)时而不好用(mgmt.jerry.com/demo).仔细观察请求地址发现不好用的时候项目名后面没有斜杠“/”。这是为什么呢?另外发现请求不带斜杠nginx默认301永久重定向到mgmt.jerry.com:8080/demo/ (nginx配置的监听端口是8080)端口号由80变成了8080

 以下是我们nginx.conf的部分配置

       location ~ ^/(demo)/ {
            proxy_pass  http://127.0.0.1:8080/$1/index.html;
        }
       location ~ ^/(demo1)/ {
            proxy_pass  http://127.0.0.1:8080/$1/index.html;
        }
        location ~ ^/(demo2)/ {
            proxy_pass  http://127.0.0.1:8080/$1/index.html;
        }
        location = / {
            proxy_pass  http://127.0.0.1:8080/demo;
        }

 配置文件的意图很明显:不同的项目名过来命中不同的index页面,默认只访问域名代理到demo的index页面。

~ ^ 匹配输入字符串开始的位置,location的正则表达式中使用了目录/(demo)/,当在浏览器输入mgmt.jerry.com/demo是无法匹配上的。而mgmt.jerry.com

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值