cdn设置错误导致的重定向次数过多的问题
今天,我把百度云加速去掉了,然后又重新接入后,发现访问http://www.xuemiyun.com 会显示重定向次数过多的问题,但我并没有修改ngnix的相关配置。关于博客站点的ngnix重定向设置了两个地方,分别是http->https 和 非www开头->www开头,两个地方的配置分别如下:
# http->https 重定向if ($server_port !~ 443){ rewrite ^(/.*)$ https://$host$1 permanent;}# 非www开头->www开头if ($host ~ '^xuemiyun.com'){ return 302 http://www.xuemiyun.com$request_uri;}
这两个配置肯定是没问题的,之前一直在用。
最后检查的原因是,百度云加速的https设置为了半程加密导致的问题。
使用cdn这类工具,其实即使服务器上不部署ssl证书都可以实现ssl访问,如果是半程加密以我的博客为例,访问过程如下:
https://www.xuemiyun.com(浏览器) -> 百度云cdn(进行校验证书是否有效)---回源--> 服务器(80端口)
可以看到这里回源的服务器的80端口,而非443端口,这就是半程加密。
所以为什么导致重定向次数过多的原因就知道了。
https://www.xuemiyun.com -> 服务器80端口-> 触发rewrite规则 -> https://www.xuemiyun.com 导致循环。
同样的不加密、全程加密、严格加密的意义就很容易理解了。如果选择不加密,访问https://www.xuemiyun.com 浏览器会直接显示不支持https,不安全的链接之类的错误。如果选择全程加密,这服务器上也必须要部署自签名的证书(cdn 回源的时候不校验服务器证书的合法性),如果服务器上面没有部署自签名的证书,浏览器就会显示不支持的证书之类的错误)如果选择严格加密,则服务器需要部署受信任的 CA 证书,否则浏览器就会显示不支持的证书之类的错误
页:
[1]