负载均衡(SLB)- 配置 HTTPS 访问设置

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Dream_Weave/article/details/100586989

环境:采用的是阿里云的 SLB 配置两台 ECS 虚拟主机。

最初在两台虚拟主机上直接对 Tomcat 配置 HTTPS 请求,单独访问是没有问题,后来将 ECS 挂到 SLB 下,给 SLB 配置了 HTTPS 监听,结果访问会经常出现问题:网页无法正常运作,将你重定向的次数过多。

通过咨询客服,是因为我将 SLB 和 ECS 都配置了 HTTPS,导致此现象。

SLB 上配置了 HTTPS,后端服务器上就不需要配置了,并且 SLB 到 ECS 是通过 HTTP 转发的,后端服务器上再设置了 HTTP 到 HTTPS 的强制跳转会出现:HTTPS => HTTP => HTTPS => HTTP……,这样跳转就循环了。

通过把 ECS 的 HTTPS 去掉后,结果又出现了项目资源文件加载不到,导致样式不全页面乱掉,请求出问题。

原因是程序中针对域名的调用都是 HTTP,导致此现象。

解决方案:在调用页面 head 里增加 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">,将 HTTP 调用改为了 HTTPS。

 注意:请求路径端口号是否需要。


注意事项

  1. 添加 HTTPS 监听,一共有 2 个端口,第一个是监听端口,第二个是服务器端口。
  2. HTTPS 监听 “健康” 关闭,因为有 BUG。
  3. HTTPS 配置,Nginx 服务器和阿里云 SLB (推荐)只需要配置一个,都配置会出问题。
  4. 443 端口在服务器安全组没配置,但 SLB 那里开启了也是可以的。
  5. 网上有说,关闭 “ssl on”,此乃野鸡操作,治标不治本(不推荐)。

阿里云 SLB 配置 HTTPS

阿里云

Nginx

server {
 listen 80;
 server_name 127.0.0.1;
 root /usr/web;

 location /abc {
  index index.html;
  try_files $uri $uri/  /abc/index.html;
 }

 location /Service {
   proxy_pass http://xxx.xxx.xxx.xxx:xxxx/Service;
 }
}

Nginx/Tengine服务器安装SSL证书:https://help.aliyun.com/knowledge_detail/95491.html

猜你喜欢

转载自blog.csdn.net/Dream_Weave/article/details/100586989