use*_*692 8 amazon-web-services amazon-elb sticky-session
我有在EC2 Tomcat实例中运行的Web应用程序,我不能为我的生命得到粘会话负载均衡工作.我已经按照http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html中的所有步骤进行了操作,尝试使用基于应用程序(使用JSESSIONID cookie)和时间 -基于(使用86400秒)方法,但无论如何,它根本不起作用.同一个用户不断在所有不同的节点上反弹.每次他们点击网页上的新链接时,它都会将它们弹回主屏幕再次登录.
我不知道它为什么不起作用.我也不太了解这些东西(哎呀,直到2个小时前我甚至不知道'粘性会话'是什么意思 - 不,我不能让其他人去做)所以我'我也不确定从哪里开始调试它.
编辑:看看我的cookie ..似乎AWSELB cookie每次加载网站时都会被删除并重写,而不是像它应该的那样持久化.
编辑2:我的负载均衡器的XML配置:
{
"LoadBalancerDescriptions": [
{
"Subnets": [
"subnet-5c83aa39",
"subnet-6a778830",
"subnet-c41cdde8"
],
"CanonicalHostedZoneNameID": "Z35SXDOTRQ7X7K",
"CanonicalHostedZoneName": "<ELB_NAME>-<redacted>.us-east-1.elb.amazonaws.com",
"ListenerDescriptions": [
{
"Listener": {
"InstancePort": 5432,
"LoadBalancerPort": 5432,
"Protocol": "TCP",
"InstanceProtocol": "TCP"
},
"PolicyNames": []
},
{
"Listener": {
"InstancePort": 8888,
"LoadBalancerPort": 8888,
"Protocol": "HTTP",
"InstanceProtocol": "HTTP"
},
"PolicyNames": [
"AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500995555135"
]
}
],
"HealthCheck": {
"HealthyThreshold": 2,
"Interval": 10,
"Target": "HTTP:44554/",
"Timeout": 8,
"UnhealthyThreshold": 4
},
"VPCId": "vpc-721bec0b",
"BackendServerDescriptions": [],
"Instances": [
{
"InstanceId": "i-0ca9c244ed930d58f"
},
{
"InstanceId": "i-0cf47dc916f3f3443"
},
{
"InstanceId": "i-09ce2f24abc50259f"
}
],
"DNSName": "<ELB_NAME>-<redacted>.us-east-1.elb.amazonaws.com",
"SecurityGroups": [
"sg-f5ff638b"
],
"Policies": {
"LBCookieStickinessPolicies": [
{
"PolicyName": "AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500564994754",
"CookieExpirationPeriod": 86400
},
{
"PolicyName": "AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500565103581",
"CookieExpirationPeriod": 0
},
{
"PolicyName": "AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500566463445",
"CookieExpirationPeriod": 28800
},
{
"PolicyName": "AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500566440580",
"CookieExpirationPeriod": 0
},
{
"PolicyName": "AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500476922828",
"CookieExpirationPeriod": 86400
},
{
"PolicyName": "AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500481383343",
"CookieExpirationPeriod": 86400
},
{
"PolicyName": "AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500479370743",
"CookieExpirationPeriod": 86400
},
{
"PolicyName": "AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500475843862",
"CookieExpirationPeriod": 86400
},
{
"PolicyName": "AWSConsole-LBCookieStickinessPolicy-<ELB_NAME>-1500995555135",
"CookieExpirationPeriod": 86400
}
],
"AppCookieStickinessPolicies": [
{
"PolicyName": "AWSConsole-AppCookieStickinessPolicy-<ELB_NAME>-1500477157435",
"CookieName": "JSESSIONID"
},
{
"PolicyName": "AWSConsole-AppCookieStickinessPolicy-<ELB_NAME>-1500472642494",
"CookieName": "JSESSIONID"
},
{
"PolicyName": "AWSConsole-AppCookieStickinessPolicy-<ELB_NAME>-1500473344752",
"CookieName": "JSESSIONID"
},
{
"PolicyName": "AWSConsole-AppCookieStickinessPolicy-<ELB_NAME>-1500473227851",
"CookieName": "JSESSIONID"
}
],
"OtherPolicies": []
},
"LoadBalancerName": "<ELB_NAME>",
"CreatedTime": "2017-07-18T15:32:33.890Z",
"AvailabilityZones": [
"us-east-1a",
"us-east-1b",
"us-east-1c"
],
"Scheme": "internet-facing",
"SourceSecurityGroup": {
"OwnerAlias": "558554867759",
"GroupName": "<redacted>"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
编辑3:任何人?请我绝望,我需要这个工作......
首先,这个粘性的东西是如何工作的!ELB 只是第一次添加一个 cookie AWSELB(或者可能是其他名称;您可以查找所有 cookie,看看哪一个不是您的)。该 cookie 还包含该请求应发送至哪个服务器的信息。
现在,来自同一浏览器的所有请求都将具有该 cookie,并且 ELB 知道转发到哪里。这里没有什么是行不通的。
让我们执行以下操作:
您可以将您正在尝试的网站/网络应用程序发送给我吗?如果它可以在公共场合访问。因为连我都可以调试它。
确保允许使用 cookie;虽然从你的问题看来这不是问题。
您在编辑粘性上设置的有效期是多少!确保在 ELB 上 --> 单击“编辑粘性”--> 选择单选按钮“启用负载均衡器生成的 cookie 粘性”,最重要的是,将到期期限保留为空白。
如果您使用 HTTPS,也请对 HTTPS 重复步骤 3。
让我知道它是否有效;我只待下一小时。
不知道为什么你的 XML 显示这么多 LBCookieStickinessPolicies!
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |