要确保请求在一次会话中被转发到相同的后端服务器上,可以使用 Nginx 的 ip_hash 或 sticky 模块来实现
要确保请求在一次会话中被转发到相同的后端服务器上,可以使用 Nginx 的 ip_hash
或 sticky
模块来实现。
- ip_hash 模块:
ip_hash
模块使用客户端 IP 地址作为哈希键,将同一 IP 地址的请求始终转发到相同的后端服务器。- 要启用
ip_hash
模块,只需在 Nginx 配置文件的http
块或upstream
块中添加ip_hash
指令即可。
nginx复制代码
http {
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
}
server {
...
location / {
proxy_pass http://backend;
}
}
}
- sticky 模块:
- 如果使用第三方模块 ngx_http_upstream_sticky_module(也称为
ngx_http_upstream_cookie_module
),则可以通过设置特定的会话标识符来实现会话粘滞。 - 需要在 Nginx 配置文件的
http
块中添加sticky
指令并设置会话标识符的名称和过期时间。
- 如果使用第三方模块 ngx_http_upstream_sticky_module(也称为
nginx复制代码
http {
upstream backend {
sticky cookie srv_id expires=1h domain=.example.com path=/;
server backend1.example.com;
server backend2.example.com;
}
server {
...
location / {
proxy_pass http://backend;
}
}
}
时来天地皆同力,运去英雄不自由