月度归档:2018年08月

阿里云SLB配置https证书


2018年8月02日 17:27:26   1,540 次浏览

nginx配置了https证书,现在想把博客放到slb负载均衡上面,由于证书是 crt和key类型,已经转换成Pem ,访问网站的时候报502,通过绑定本地Hosts去测试正常,唯独浏览器不行。

在阿里云help看到slb 配置https 证书的话,后端ecs不需要监听 443 端口,查看对应 443 监听后端ecs 服务器健康检查是异常的。 登陆对应后端服务器,执行下

echo -e “HEAD / HTTP/1.0\r\n” |nc -t 内网IP 端口

七层的监听健康检查的判断依据是 head 请求获取到的状态码判断健康检查是否正常,查看之前提供的截图是 400 状态码,在健康检查配置中 4xx 勾选上,或者是设置健康检查路径为一个 head 请求 返回 200 页面文件,再查看是否正常

 

后端n’ginx是否需要配置强制https?

答:如果没有http 强制 跳转https 的需求,或者是slb 已经配置了跳转,后端ecs 是不会配置的。

 

1、没有开启强制https,页面出现样式乱掉

2、配置了一个正常页面test.html健康检查200, 会出现502

3、后端开启强制https则会出现502

 

关于样式乱的问题,您通过谷歌的F12 访问

访问样式改变的问题,查看下是否是https 的页面中的相关资源是通过http 的方式调用的导致显示不正常。

502问题:

测试是重定向过多,在ecs 上配置http 强制跳转,需要配置以下对应监听。 SLB 443 -> ECS 80(nginx) SLB 80 -> ECS 81(nginx) 后端ecs81端口专门做重定向,重定向到SLB的443端口上,80端口提供网站服务即可。可以新建一个站点监听该端口,这个站点是用来做重定向的。

 

SLB 80 -> ECS 81(nginx) 的话,其它的站点没有https会不会受到影响?

如果后端已经配置了HTTPS了,那么SLB使用TCP 443监听好了,这样不需要调整后端的ECS的设置。 如果需要有跳转,可以使用 SLB 80监听对应后端http站点,后端HTTP设置跳转, 跳转到SLB 443端口 注意:HTTP站点上跳转时不能使用$server 一定要写SLB的地址