本文将介绍七层监听器如何配置会话保持能力,使来自同一客户端的访问请求被负载均衡转发到相同的后端服务器进行处理。
负载均衡七层监听器支持基于Cookie的会话保持功能,提供植入Cookie和重写Cookie两种方式。
本文以重写Cookie为例,为您介绍如何为七层监听器配置会话保持功能。
不同Web服务器的Cookie配置方式不同,本文以Nginx、Apache为例,为您介绍Cookie配置步骤。
登录CLB实例中的某一台后端服务器,详细步骤请参见登录Linux实例或登录Windows实例。
执行以下命令,查看Nginx配置文件的路径。
find / -name nginx.conf
回显即为Nginx配置文件所在路径,如下图所示。
执行以下命令,在配置文件目录下备份配置文件。
cd /etc/nginx cp nginx.conf nginx.conf.bak
执行以下命令,修改原Nginx配置文件。
vi nginx.conf
按i
进入编辑模式,在server配置信息中添加配置字段location
,配置cookie信息。
··· server { listen 80; listen [::]:80; server_name localhost; location / { add_header Set-Cookie backend_server="ecs01"; # 设置cookie,backend_server表示cookie名称,ecs01表示cookie的值 expires 3600; # 设置cookie过期时间 root html; return 200 '$request;$http_host;$server_port;$server_addr'; # 设置响应格式 index index.html index.htm; } ···
按ESC
退出编辑模式,输入:wq
保存并退出文件。
执行以下命令,重启Nginx使配置生效。
systemctl restart nginx.service
参考以上步骤完成CLB实例后端服务器组中所有后端服务器的cookie配置。
登录CLB实例中的某一台后端服务器,详细步骤请参见登录Linux实例或登录Windows实例。
执行以下命令,查看Apache配置文件的路径。
httpd -V
回显如下图所示,表示Apache配置文件路径为“/etc/httpd/conf/httpd.conf”。
执行以下命令,在Apache配置文件目录下备份配置文件。
cd /etc/httpd/conf cp httpd.conf httpd.conf.bak
执行以下命令,修改原Apache配置文件。
vi httpd.conf
按i
进入编辑模式,在Apache配置文件末尾添加以下信息配置cookie。
Header add Set-Cookie "backend_server=ecs01; expires=3600"
按ESC
退出编辑模式,输入:wq
保存并退出文件。
执行以下命令,重启Apache使配置生效。systemctl restart httpd.service
参考以上步骤完成CLB实例后端服务器组中所有后端服务器的cookie配置。
登录负载均衡控制台。
在顶部导航栏,选择目标CLB实例所属的项目和地域。
单击目标CLB实例列表右侧的“配置监听器”按钮,进入该实例的监听器列表页。
单击目标监听器列表右侧的“编辑监听器“按钮,配置监听器的会话保持功能,如下图所示。
注意
此处Cookie名称请与后端服务器的Cookie配置保持一致。
单击“确定”按钮,完成操作。
多次返回的后端服务器信息如下图所示,其中包含curl -v http://CLB实例的公网IP:监听端口
Set-Cookie
字段且返回的值相同时,说明会话保持生效,同一客户端的访问请求被转发到同一台后端服务器。