全部产品
负载均衡

配置会话保持规则

更新时间:2017-06-14 16:02:54   分享:   

会话保持功能介绍

负载均衡服务提供会话保持功能。开启会话保持功能后,负载均衡服务会把来自同一客户端的访问请求分发到同一台后端ECS上进行处理。

负载均衡四层监听的会话保持是基于IP地址的会话保持,负载均衡监听器会将来自同一IP地址的请求转发到同一个后端ECS上;而七层监听是基于cookie的会话保持。

针对七层(HTTP协议和HTTPS协议)监听,您可以通过以下两种方式配置会话保持:

  • 植入Cookie: 此种方法下,您只需要指定cookie的过期时间。客户端第一次访问时,负载均衡服务在返回请求中植入cookie(即在HTTP/HTTPS响应报文中插入SERVERID字串),下次客户端携带此cookie访问,负载均衡服务会将请求定向转发给之前记录到的ECS实例上。

    植入Cookie

  • 重写Cookie: 此种方式下,您可以根据需要指定HTTPS/HTTP响应中插入的cookie。您需要在后端ECS上维护该cookie的过期时间和生存时间。负载均衡服务发现用户自定义了cookie,将会对原来的cookie进行重写,下次客户端携带新的cookie访问,负载均衡服务会将请求定向转发给之前记录到的ECS实例上。

    重写Cookie

应用场景

假如您的负载均衡服务地址下有两个域名:vip.a.comimg.a.com。当您想为其中的一个域名配置会话保持时,比如vip.a.com,则可以使用重写Cookie的方式进行配置,在Cookie名称中输入name,然后在应用服务器上为域名vip.a.com设置key为name的cookie。

说明:子域名和主域名的cookie之间存在继承关系。如果您有对一级域名做会话保持而对二级域名不做会话保持的需求,那么可以通过申请的服务地址来解决这个问题。

基于以上需求,本文档会分别介绍Apache、Nginx和Lighttpd应用服务器上配置域名cookie的方法。

Apache

  1. 打开httpd.conf配置文件,确保如下配置没有被注释。

    1. LoadModule usertrack_module modules/mod_usertrack.so
  2. 在virtual host中添加以下配置。

    1. CookieName name
    2. CookieExpires "1 days"
    3. CookieStyle Cookie
    4. CookieTracking on

Nginx

  1. server {
  2. listen 8080;
  3. server_name wqwq.example.com;
  4. location / {
  5. add_header Set-Cookie name=xxxx;
  6. root html;
  7. index index.html index.htm;
  8. }
  9. }

Lighttpd

  1. server.modules = ( "mod_setenv" )
  2. $HTTP["host"] == "test.example.com" {
  3. server.document-root = "/var/www/html/"
  4. setenv.add-response-header = ( "Set-Cookie" => "name=XXXXXX" )
  5. }
本文导读目录
本文导读目录
以上内容是否对您有帮助?