joe*_*cii 7 cookies session amazon-web-services tomcat7 amazon-elastic-beanstalk
我正在开发部署在AWS Elastic Beanstalk Tomcat 7容器上的Lift应用程序.使用Elastic Load Balancer时,我的应用程序需要粘性会话.
由于我的应用程序使用标准的servlet内容,因此它为JSESSIONID
客户端提供cookie.我想将AWS配置为使用应用程序控制的会话粘性,在给定我的cookie名称的情况下,它将跟踪会话.但是,在Elastic Beanstalk Load Balancer配置中,我只看到配置AWS管理的cookie的能力.我想这会起作用,但我宁愿只提供一个cookie,并且粘性与会话一致,与我们在应用程序中配置它们的方式一致.
虽然看起来我们可以在与我的EB实例相关联的EC2设置中配置应用程序控制的会话粘性,但是只要我们在EB控制台中进行更改,我们应用的设置就会被破坏.这不是非常令人惊讶的行为,但我希望我们很快就会忘记这种行为并意外地消除我们的设置.
有谁知道是否有可能使粘性变粘?:)
Elastic Load Balancer (ELB) 支持应用程序控制的会话粘性 ( http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-sticky-sessions.html#enable-sticky-sessions-application )。如果你想这样做,你可以创建一个.ebextensions
脚本来修改 Beanstalk ELB。您不能通过 Beanstalk Web 控制台执行此操作。
要配置 via .ebextensions
,只需.ebextensions
在根 Beanstalk 应用程序中创建一个名为的目录,并00-load-balancer.config
在该.ebextensions
目录中创建一个文件(例如:)。
该.ebextensions/00-load-balancer.config
文件可能是:
{
"Resources": {
"AWSEBLoadBalancer": {
"Type": "AWS::ElasticLoadBalancing::LoadBalancer",
"Properties": {
"AppCookieStickinessPolicy": [
{
"PolicyName": "HttpSessionStickinessPolicy",
"CookieName": "JSESSIONID"
}
],
"Listeners": [
{
"LoadBalancerPort": 80,
"Protocol": "HTTP",
"InstancePort": 80,
"InstanceProtocol": "HTTP",
"PolicyNames": [
"HttpSessionStickinessPolicy"
]
}
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该配置将修改 ELB 以侦听端口 80,并根据HttpSessionStickinessPolicy
策略将其转发到某个 EC2 实例端口 80 。该HttpSessionStickinessPolicy
会做应用控制会话粘性。
请参阅 AWS Elastic Beanstalk ( http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-resources.html ) 和 AWS CloudFormation ( http://docs.aws.amazon.com/AWSCloudFormation/latest /UserGuide/aws-properties-ec2-elb.html ) 文档以了解更多相关信息。
归档时间: |
|
查看次数: |
1652 次 |
最近记录: |