今天,我百度云加速接入后,发现访问www.94qy.net 会显示重定向次数过多的问题,但我并没有修改ngnix的相关配置。

关于公司站点的ngnix重定向设置了两个地方,分别是http->https 和 非www开头->www开头,两个地方的配置分别如下:

# http->https 重定向
if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
}

# 非www开头->www开头
if ($host ~ '^94qy.net'){
    return 302 http://www.94qy.net$request_uri;
}

这两个配置肯定是没问题的,之前一直在用。

最后检查的原因是,百度云加速的https设置为了半程加密导致的问题

使用cdn这类工具,其实即使服务器上不部署ssl证书都可以实现ssl访问,如果是半程加密以我的博客为例,访问过程如下:

https://www.94qy.net (浏览器) -> 阿里云cdn(进行校验证书是否有效)---回源--> 服务器(80端口

可以看到这里回源的服务器的80端口,而非443端口,这就是半程加密。

所以为什么导致重定向次数过多的原因就知道了。

https://www.94qy.net -> 服务器80端口-> 触发rewrite规则 -> https://www.94qy.net 导致循环。

同样的不加密、全程加密、严格加密的意义就很容易理解了。

如果选择不加密,访问https://www.94qy.net 浏览器会直接显示不支持https,不安全的链接之类的错误。
如果选择全程加密,这服务器上也必须要部署自签名的证书(cdn 回源的时候不校验服务器证书的合法性),如果服务器上面没有部署自签名的证书,浏览器就会显示不支持的证书之类的错误)
如果选择严格加密,则服务器需要部署受信任的 CA 证书,否则浏览器就会显示不支持的证书之类的错误

最后修改:2020 年 11 月 25 日
如果觉得我的文章对你有用,请随意赞赏