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/demo/是可以匹配上的,匹配上就可以正常访问了demo/index.html了。这就解释了有的时候好使,有时候不好使的问题了,立马修改配置为

  location ~ ^/(demo) {
            proxy_pass  http://127.0.0.1:8080/$1/index.html;
        }
       location ~ ^/(demo1) {
            proxy_pass  ht
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx 301重定向死循环是指在使用nginx进行301永久重定向时,由于配置错误或者逻辑问题导致请求在重定向过程中陷入无限循环的情况。 通常情况下,nginx301重定向是通过配置server块中的location指令来实现的。当客户端发送请求时,nginx会根据配置的location规则进行匹配,并将匹配到的请求重定向到指定的URL。 如果配置的重定向规则存在问题,比如将请求重定向到了自身或者循环重定向到其他URL,就会导致死循环的情况发生。例如,以下是一个可能导致死循环的nginx配置示例: ``` server { listen 80; server_name example.com; return 301 http://example.com; } ``` 在这个示例中,无论客户端请求任何URL,nginx都会将其重定向到http://example.com。这样就会导致请求不断地被重定向,从而形成死循环。 为了避免nginx 301重定向死循环,需要确保重定向规则正确配置。可以通过以下几种方式来解决问题: 1. 检查重定向规则:仔细检查nginx配置文件中的重定向规则,确保没有将请求重定向到自身或者形成循环重定向的情况。 2. 使用301重定向的目标URL:在配置重定向规则时,确保将请求重定向到一个有效的URL,而不是一个无效的URL或者自身。 3. 使用302临时重定向:如果无法确定正确的重定向规则,可以暂时使用302临时重定向代替301永久重定向,以避免死循环的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值