问题描述
在负载均衡 CLB 使用 http 和 https 监听器,如何将 http 流量转发至 https。
实现方式
CLB 无法配置 HTTP 流量重新导向 https,需要在 CLB 后端 Web 服务器实例配置重写规则。
也就是说,需要配置 X-Forwarded-Proto 头以及重写http 请求,避免 CLB 和后端 RS 之间重定向请求无限循环导致ERR_TOO_MANY_REDIRECTS 错误。
以Nginx为例
1.请确认在 CLB 已经创建 HTTP 和 HTTPS 监听器
2.在后端RS上配置Nginx 如下
本次操作Nginx版本为1.20.1
[root@Nginx ~]# nginx -v
nginx version: nginx/1.20.1
打开Nginx 配置文件nginx.conf 配置如下信息
$host 配置转发的域名
$request_uri 配置转发的URI
server {
listen 80;
server_name _;
if ($http_x_forwarded_proto = 'http'){
return 301 https://$host$request_uri;
}
}
重启Nginx 或者 reload 加载配置文件
[root@nginx ~]# nginx -s reload
[root@nginx ~]# systemctl restart nginx
如果您有其他问题,欢迎您联系火山引擎技术支持服务