项目

一般

简介

【敏捷版】alb配置代理转发后登录验证码一直错误,源机器上登录正常

liu yp超过一年 之前添加

场景:配置代理转发后登录验证码一直错误,直接在源机器上可以正常登录

配置: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;
        }
    }
}