【敏捷版】alb配置代理转发后登录验证码一直错误,源机器上登录正常
场景:配置代理转发后登录验证码一直错误,直接在源机器上可以正常登录
配置:alb.conf
http {
upstream myapp {
server 192.168.1.100:80;
server 192.168.1.101:80;
server 192.168.1.102:80;
}
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://myapp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
原因:由于负载均衡转发请求,验证码和登录验证请求并未发到同一源机器上,所以导致验证码错误
解决方案:配置负载均衡规则为ip_hash
修改后配置为:
http {
upstream myapp {
ip_hash;
server 192.168.1.100:80;
server 192.168.1.101:80;
server 192.168.1.102:80;
}
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://myapp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}