详情页标题前

阿里云负载均衡配置会话保持-云淘科技

详情页1

默认情况下,ALB会将每个客户端请求分别分发到不同的后端服务器上。当您开启了会话保持功能后,会话保持可以使来自同一客户端的请求被转发到同一台后端服务器上。本文为您介绍会话保持的相关配置。

背景信息

默认情况下,ALB会将每个客户端请求分别分发至不同的后端服务器上。当您开启了会话保持功能后,会话保持可以使来自同一客户端的请求被转发至同一台后端服务器上,方便后端服务器维护状态信息及向客户端提供持续体验。

  • 未开启会话保持:同一客户端的请求通过ALB可能会被分发至不同的后端服务器,在某些场景下,如登录后端服务器获取交互信息等场景,客户端的请求可能需重新登录后端服务器。

  • 开启会话保持:同一客户端的请求通过ALB被分配至同一台后端服务器,而非分配至不同的后端服务器,在某些场景下,如登录后端服务器获取交互信息等场景,避免了客户端的请求需要重新登录后端服务器。

ALB开启会话保持后,需要选择Cookie的处理方式,有植入Cookie和重写Cookie两种处理方式。

  • 植入Cookie:客户端第一次访问时,ALB会在返回请求中植入Cookie(即ALB插入SERVERID和SERVERCORSID两个cookie;SERVERCORSID是以SERVERID为基础,且加入了samesite=None这个属性),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。

    说明

    会话保持植入Cookie方式自带SameSite=None,无需用户配置,可以有效解决ALB转发规则中跨域(CORS)场景下浏览器无法保存Cookie的问题。

  • 重写Cookie:当ALB发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,ALB会将请求定向转发给之前记录的后端服务器。

使用限制

服务器组类型为函数计算类型时,您无需配置会话保持。更多操作,请参见创建服务器组。

前提条件

  • 您已经创建了服务器组。具体操作,请参见创建服务器组。

  • 您已经创建了至少一台云服务器ECS(Elastic Compute Service),并且在ECS中部署了Web服务。具体操作,请参见:

    • 自定义购买实例

    • 手动部署LNMP环境(Alibaba Cloud Linux 2)

  • 您已将后端服务器ECS添加到服务器组中。具体操作,请参见添加后端服务器。

配置会话保持

新建服务器组

  1. 登录应用型负载均衡ALB控制台。
  2. 在顶部菜单栏处,选择后端服务器组所属的地域。

  3. 在左侧导航栏,选择应用型负载均衡ALB > 服务器组

  4. 服务器组页面,单击创建服务器组

  5. 创建服务器组对话框,完成参数的配置,然后单击创建

    此处仅列出与本文强相关的配置项,其余参数的配置请参见创建服务器组。

    开启会话保持:打开开启会话保持开关并选择Cookie处理方式

    • 选择植入Cookie,输入会话保持超时时间

      会话保持超时时间取值范围为1~86400秒。

    • 选择重写Cookie,输入Cookie名称。

已有服务器组

  1. 登录应用型负载均衡ALB控制台。
  2. 在顶部菜单栏处,选择后端服务器组所属的地域。

  3. 在左侧导航栏,选择应用型负载均衡ALB > 服务器组

  4. 服务器组页面,找到目标服务器组,在操作列单击编辑基本信息

  5. 编辑基本信息对话框中,开启或关闭会话保持。

    • 开启会话保持:打开开启会话保持开关并选择Cookie处理方式

      • 选择植入Cookie,输入会话保持超时时间,然后单击保存

        会话保持超时时间取值范围为1~86400秒。

      • 选择重写Cookie,输入Cookie名称,然后单击保存

    • 关闭会话保持:关闭开启会话保持开关,然后单击保存

后端服务器配置Cookie的方法

当服务器组开启会话保持且选择的Cookie处理方式为重写Cookie时,需要在后端服务器中配置对应的Cookie。

说明

  • 本文将Cookie名称设置为BACKEND_SERVER,该名称仅为示例,您可以自定义该名称。

  • 不同的Web服务器对应的Cookie设置方法不同,以下列举常见Web服务器的设置方法,请您根据实际情况选择,如果您使用的Web服务器不在以下列表中,请您查阅对应的官方文档获取配置方法。

  1. 远程登录ECS。具体操作,请参见ECS远程连接操作指南。

  2. 根据不同的Web服务器配置Cookie。

    • Apache

      1. 查看Apache的httpd.conf配置文件,确认以下配置没有被注释,即Apache正常加载了usertrack_module模块。

        说明

        如果以下配置被注释,您需要移除注释并重启Apache服务。

        LoadModule usertrack_module modules/mod_usertrack.so
      2. 参考以下内容,在VirtualHost标签中添加配置。

        CookieName BACKEND_SERVER    #Cookie的名称,此处以BACKEND_SERVER为例。
        CookieExpires "1 days"       #Cookie的过期时间,此处以1天为例。
        CookieStyle Cookie
        CookieTracking on
      3. 执行以下命令,重新加载Apache的配置文件,使以上改动生效。

        service httpd reload
    • Nginx

      1. 编辑Nginx的nginx.conf配置文件,参考以下内容进行配置。

        server {  
            listen 80;  
            server_name www.example.com;  
            location / {    
                 add_header Set-Cookie BACKEND_SERVER=;  #Cookie的名称,此处以BACKEND_SERVER为例。    
                 root  html;    
                 index index.html index.htm;
          }
        }
      2. 执行以下命令重新加载Nginx的配置文件。

        nginx -s reload
    • Lighttpd

      1. 编辑Lighttpd的lighttpd.conf配置文件,参考以下内容进行配置。

        server.modules = ( "mod_setenv" )
        $HTTP["host"] == "www.example.com" {   
        server.document-root = "/var/www/html/"   
        setenv.add-response-header = ( "Set-Cookie" => "BACKEND_SERVER=" )
        }
      2. 重启Lighttpd服务,使以上改动生效。

  3. 参考以上步骤,修改服务器组中其余后端服务器的配置,使其含有Cookie配置。

  4. 修改服务器组配置,将Cookie处理方式设置为重写Cookie。

    1. 登录应用型负载均衡ALB控制台。

    2. 在顶部菜单栏处,选择后端服务器组所属的地域。

    3. 在左侧导航栏,选择应用型负载均衡ALB > 服务器组

    4. 服务器组页面,找到目标服务器组,在操作列单击编辑基本信息

    5. 编辑基本信息对话框中,选择Cookie处理方式重写Cookie,并设置Cookie名称BACKEND_SERVER

测试会话保持的有效性

在后端服务器配置Cookie后,您需要测试ALB会话保持的有效性。

在测试会话保持有效性之前,您需要满足以下条件:

  • 您已经创建了一个处于运行中状态的公网ALB实例,且为该实例创建了服务器组并配置了监听。具体操作,请参见快速实现IPv4服务的负载均衡。

  • 您已经创建了后端服务器ECS01和ECS02,用于接收请求,且在ECS01和ECS02中分别创建了测试页面check.php,该页面将返回ECS实例的Cookie和内网IP地址信息,check.php的代码示例如下:

    <?php
        setcookie('mycookie','cookietest');
        echo 'Cookie is: ';
        echo ($_COOKIE['mycookie']);
        echo '
    '; echo 'Current ECS is : '; echo '
    '; var_dump($_SERVER['SERVER_ADDR']); ?>
  • 您已经在客户端创建了ECS03,用于发送请求。

本文中的ALB实例和ECS01、ECS02的网络规划为:

实例

IP规划

ALB

1.1.XX.XX

ECS01

192.168.32.175

ECS02

192.168.32.177

说明

本文中服务端的ECS01和ECS02,及客户端的ECS03均安装了Linux操作系统,如果您使用的是其他操作系统,如何测试会话保持的有效性请参见您的操作系统手册。

  1. 远程登录客户端的ECS03,具体操作,请参见ECS远程连接操作指南。

  2. 执行以下命令,保存ALB实例的Cookie值。

    说明

    ALB的会话保持默认模式是植入Cookie,而curl命令默认不保存和发送Cookie。需要预先保存相应的Cookie,再进行测试。否则,curl测试结果将是随机的,影响测试结果的准确性。

    curl -D test.cookie http://1.1.XX.XX/check.php
  3. 新建测试脚本check_7.sh,内容如下。

    for ((a=1;a/dev/null | grep 'ECS'
        sleep 1
    done

    说明

    该脚本默认测试30次,您可以修改a<=30更改测试次数。

  4. 执行以下命令,进行会话保持测试。

    sh check_7.sh
    • 收到如下所示的回复报文,表示返回的后端服务器内网IP均是同一个,则会话保持有效。阿里云负载均衡配置会话保持-云淘科技

    • 收到如下所示的回复报文,表示返回的后端服务器内网IP不固定,则会话保持失效。阿里云负载均衡配置会话保持-云淘科技

相关文档

  • CreateServerGroup:创建服务器组。

  • UpdateServerGroupAttribute:更新服务器组的配置,例如健康检查、会话保持、名称、调度算法和协议等。

  • AddServersToServerGroup:向服务器组中添加后端服务器。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/167470.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云负载均衡ALB通过DDoS防护(增强版)EIP实现公网访问-云淘科技

    阿里云EIP提供DDoS防护(增强版)安全防护级别的EIP。DDoS防护(增强版)EIP提供Tbps级的专业DDoS防护能力,适用于大型游戏、重大线上直播等对安全防护级别要求较高且时延较敏感的场景。本文介绍ALB如何绑定DDoS防护(增强版)EIP,并通过DDoS防护(增强版)EIP实现公网访问。 DDoS防护(增强版)EIP介绍 阿里云提供DDoS防护(增…

    2023年12月10日
  • 阿里云负载均衡变更ALB实例的网络类型-云淘科技

    您可以根据需要变更应用型负载均衡ALB(Application Load Balancer)实例的网络类型。 实例网络类型 ALB网络类型分为公网和私网。公网和私网的区别: 私网:每个可用区提供一个私网IP,只能通过阿里云内部网络访问ALB,无法从互联网访问。 公网:每个可用区提供一个公网IP和一个私网IP。公网ALB通过弹性公网IP(Elastic IP …

    阿里云负载均衡 2023年12月10日
  • 阿里云负载均衡ALB状态码说明-云淘科技

    本文为您介绍ALB常用状态码的说明及可能原因。在遇到ALB返回异常状态码时,您可以根据状态码的可能原因排查问题。 说明 ALB支持开启访问日志,开启该功能后,可以帮助您更快地定位问题。关于如何开启访问日志,请参见访问日志。 收到异常状态码时,请排查访问日志中ALB状态码(status)和后端状态码(upstream_status)是否相同,如果两者相同,很可…

    阿里云负载均衡 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云负载均衡联系我们-云淘科技

    如果您在使用ALB过程中有任何疑问和建议,请打开钉钉搜索群号加入钉钉群与我们联系。 群名:ALB客户交流群 群号:31945843 内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家阿里云企业补贴进行中: 马上申请腾讯云限时活动1折起,即将结束: 马上收藏同尘科技为腾讯云授权服务中心。 购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

    阿里云负载均衡 2023年12月10日
  • 阿里云容器服务ACKALB Ingress服务高级用法-云淘科技

    在ACK Serverless集群中,ALB Ingress对集群服务(Service)中外部可访问的API对象进行管理,提供七层负载均衡能力。本文介绍如何使用ALB Ingress将来自不同域名或URL路径的请求转发给不同的后端服务器组、将HTTP访问重定向至HTTPS及实现灰度发布等功能。 索引 前提条件 基于域名转发请求 基于URL路径转发请求 配置健…

    阿里云容器服务 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。