免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
概述
开启负载均衡SLB中HTTP或HTTPS监听的会话保持功能时,系统提供植入Cookie和重写Cookie两种Cookie处理方式。本文主要介绍选择重写Cookie时,Web服务器中如何配置Cookie。
详细信息
假设您选择将Cookie名称设置为BACKEND_SERVER
,请参考以下步骤进行设置:
说明:此处的Cookie名称仅为示例,您可以自定义该名称。
- 登录负载均衡SLB后端服务器组中的一台服务器。
- 不同的Web服务器对应的Cookie设置方法不同,以下列举常见Web服务器的设置方法,请您根据实际情况选择:
说明:如果您使用的Web服务器不在以下列表中,请您查阅对应的官方文档获取配置方法。
- Apache
- 查看Apache的
httpd.conf
配置文件,确认以下配置没有被注释,即Apache正常加载了usertrack_module
模块。说明:如果以下配置被注释,您需要移除注释并重启Apache服务。
LoadModule usertrack_module modules/mod_usertrack.so
- 参考以下内容,在
VirtualHost
标签中添加配置。CookieName BACKEND_SERVER #Cookie的名称,此处以BACKEND_SERVER为例。
CookieExpires "1 days" #Cookie的过期时间,此处以1天为例。
CookieStyle Cookie
CookieTracking on - 执行以下命令,重新加载Apache的配置文件,使以上改动生效。
service httpd reload
- 查看Apache的
- Nginx
- 编辑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;
}
} - 参考以下命令,重新加载Nginx的配置文件,使以上改动生效。
nginx -s reload
- 编辑Nginx的
- Lighttpd
- 编辑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=<自定义字符串>" )
} - 重启Lighttpd服务,使以上改动生效。
- 编辑Lighttpd的
- Apache
- 参考以上步骤,修改后端服务器组中的其余Web服务器配置,使其含有Cookie配置。
- 登录负载均衡的管理控制台,参见添加HTTP监听中的步骤二:配置协议监听章节,修改Cookie处理方式为重写Cookie,并指定Cookie名称为
BACKEND_SERVER
。 - 测试服务器均衡的会话保持功能,确认会话保持功能正常。如果您不知道如何测试会话保持功能,可参见使用curl命令测试负载均衡SLB会话保持的有效性。
更多信息
关于植入Cookie和重写Cookie的概念和区别如下:
- 植入Cookie
- 概念
客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP/HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。 - 区别
您只需要在控制台上即可指定Cookie的过期时间。
- 概念
- 重写Cookie
- 概念
当负载均衡服务发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录的后端服务器。 - 区别
您可以根据需要指定HTTPS/HTTP响应中的Cookie,但是您需要在后端服务器上维护该Cookie的过期时间和生存时间。
- 概念
适用于
- 负载均衡SLB