云原生 - 负载均衡(SLB)配置 HTTPS 访问设置
  t2ja7jQOPGVr 2023年11月02日 44 0


环境:采用的是阿里云的 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

阿里云

云原生 - 负载均衡(SLB)配置 HTTPS 访问设置_配置 HTTPS 访问设置

云原生 - 负载均衡(SLB)配置 HTTPS 访问设置_阿里云_02

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​


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  bifOjSxj34Bv   2023年12月07日   19   0   0 nginxDockerdockernginx
t2ja7jQOPGVr