全部产品
Search
文档中心

负载均衡:使用CLB将HTTP访问重定向至HTTPS

更新时间:Dec 18, 2024

HTTPS是加密数据传输协议,安全性高。当企业进行HTTPS安全改造后,为了方便用户访问,可以使用CLB在用户无感知的情况下将HTTP访问重定向至HTTPS。本文为您介绍如何使用CLB将HTTP访问重定向至HTTPS。

关键特性

  • 平滑切换:在重定向期间,用户在访问网站时,感知不到从HTTP到HTTPS的重定向过程,因为切换迅速且无缝,不会影响用户的正常浏览行为。

  • 降低负载:后端服务器不需要处理重定向逻辑,可以更专注于核心业务逻辑的处理,有助于提高后端服务器的处理效率。

应用场景

  • HTTPS安全改造:将现有网站或应用程序从HTTP改造为HTTPS,提升用户和服务器之间通信的安全性。

  • 域名更改/站点迁移:当网站迁移到新的域名时,使用重定向可以保持用户访问的连续性。

场景示例

企业在阿里云某地域购买了一个CLB实例,并配置了HTTP监听,为了提升传输数据的安全性,需要对网站进行HTTPS安全改造。在改造过程中,防止用户遇到服务中断或访问失败的情况,该企业选择使用CLB将HTTP访问重定向至HTTPS,从而平稳地将HTTP协议切换为HTTPS协议,保证业务安全性。

image

注意事项

  • CLB已经在全部地域开放了HTTP重定向功能。

  • 配置HTTP重定向至HTTPS时,HTTP监听和HTTPS监听在同一个CLB实例下。

  • CLB实例中已存在的HTTP监听不支持开启监听转发。需要在创建HTTP监听时开启监听转发。

前提条件

  • 您已创建后端服务器ECS01和ECS02实例,并在ECS01和ECS02中均部署了应用服务,本文所涉及的服务器已安装Alibaba Cloud Linux 3.2104 LTS 64位操作系统。请参见自定义购买实例

    ECS中测试服务的部署命令参考示例

    本文ECS01部署测试应用示例如下:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS01." > index.html

    本文ECS02部署测试应用示例如下:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS02." > index.html
  • 您已创建CLB实例,本文以公网CLB为例。请参见创建和管理CLB实例

  • 您已购买证书或者上传第三方证书到SSL证书服务并绑定域名。请参见SSL证书快速上手

操作步骤

步骤一:创建HTTPS监听

  1. 登录传统型负载均衡CLB控制台

  2. 在顶部菜单栏,选择目标CLB实例所属的地域。

  3. 实例管理页面,找到目标实例,然后在操作列单击监听配置向导

  4. 协议&监听配置向导,根据以下信息配置监听,然后单击下一步

    此处仅列出和本文强相关的配置项,其余参数保持默认值。其他参数的配置,请参见添加HTTPS监听

    • 选择监听协议HTTPS

    • 监听端口443

  5. SSL证书配置向导,选择已上传的服务器证书,或者在选择服务器证书时单击新建服务器证书上传一个服务器证书,其余参数保持默认配置,然后单击下一步

  6. 后端服务器配置向导,选择后端服务器。本文以默认服务器组为例。

    1. 选择默认服务器组,然后单击继续添加

    2. 我的服务器面板,选中ECS01和ECS02,然后单击下一步

    3. 配置端口和权重配置向导,配置ECS01和ECS02的权重,单击添加

    4. 配置ECS01和ECS02的端口,本文都设置为80然后单击下一步

  7. 健康检查配置向导,保持默认配置,单击下一步

  8. 配置审核配置向导,检查监听配置信息,然后单击提交,等待配置成功后,在弹出的对话框中单击知道了

步骤二:配置HTTP监听转发规则

  1. 监听页签,单击添加监听

  2. 协议&监听配置向导,根据以下信息配置监听,其余参数保持默认配置,然后单击下一步

    监听配置

    说明

    选择监听协议

    选择监听的协议类型。

    本文选择HTTP

    监听端口

    用来接收请求并向后端服务器进行请求转发的监听端口。

    本文设置为80

    高级配置

    单击修改展开高级配置。

    本文仅修改监听转发,其余参数保持默认配置。

    监听转发

    选择是否将HTTP监听的流量转发到HTTPS监听。

    本文选择开启监听转发,并选择目的监听步骤一:创建HTTPS监听创建的HTTPS监听。

  3. 配置审核页签,单击提交,等待配置成功后,单击知道了

监听转发开启后,该CLB实例所有来自HTTP:80的访问都会转发至HTTPS:443,并根据HTTPS:443的监听配置进行转发。

步骤三:配置域名解析

说明
  • 对于非阿里云注册域名,需先将域名添加到云解析控制台,才可以进行域名解析设置。

  • 如果您的CLB实例为私网类型,需先为其绑定弹性公网IP(EIP),随后配置A记录将域名解析指向该EIP实现公网访问。

  1. 在左侧导航栏,选择传统型负载均衡CLB > 实例管理

  2. 实例管理页面,选择目标实例,并复制目标实例的服务地址

  3. 执行以下步骤添加A解析记录。

    1. 登录域名解析控制台

    2. 权威域名解析页面,找到目标域名,在操作列单击解析设置

    3. 解析设置页面,单击添加记录

    4. 添加记录面板配置以下信息,其他参数可保持默认值或根据实际情况修改,完成后单击确定

      配置

      说明

      记录类型

      在下拉列表中选择A

      主机记录

      您的域名的前缀。

      说明

      创建域名为根域名时,主机记录为@

      记录值

      输入域名对应的A地址,即您复制的CLB实例的服务地址。

步骤四:验证结果

以任意一台可以访问公网的终端为例,测试访问CLB的HTTP请求是否能够重定向至HTTPS。

  1. 打开终端的cmd窗口。

  2. 执行curl -v http://<CLB 域名>,如下图所示,收到状态码302,表示访问CLB的请求重定向至HTTPS。

    image

重定向状态码说明

CLB支持的重定向状态码及说明如下表所示。

状态码

说明

302

临时重定向,请求的资源只是暂时被移动,客户端应继续使用原有URL访问。

常见问题

为何HTTP监听中找不到开启监听转发的配置?

之前在CLB实例中已经创建的HTTP监听不能开启监听转发。您需要重新创建HTTP监听,才可以开启监听转发。

相关文档

CLB重定向功能通过在CLB实例上配置监听器规则来实现,而ALB在应用层面对HTTP请求进行重定向,具有更灵活的控制能力和更多的配置选项,支持基于路径的重定向或者基于请求头的重定向。请参考使用ALB将HTTP访问重定向至HTTPS