我在AWS上设置了一个负载均衡环境,包含两个运行Laravel 5.3网站的EC2服务器。
LB每两分钟轮询一次,成功连接到每个实例上名为Healthy.html的html文件。
每个实例每2分钟将其内容与存储在S3 Bucket上的文件夹同步。这意味着我可以对存储桶进行修改,并且所有EC2实例都会接收这些修改并每2分钟同步一次。
我正在使用Jquery异步POST到名为/ register的路由以发送电子邮件。
每次在本地和开发环境中都有效。每当我单独连接到每个EC2实例时,它都可以工作。
但是,当我通过loadbalanced URL运行时,它将间歇性地通过服务器500错误(在jquery xhr.send()调用上)。
解释这个"间歇性的"行为更多,我第一次提交表单时,会抛出500错误。如果我再次单击该按钮,则会提交表单并发送电子邮件。如果我再次点击它会抛出500错误。每次我不更改数据或刷新页面。
这是令我困惑的间歇性行为。异步调用是否可能跳到第二台服务器上,因此会话无效?
还有其他可能性吗?
答案 0 :(得分:0)
好吧,这取决于Session Stickiness,似乎我在写出来时设法回答了我的问题。
但是如果它可以帮助其他人,则AWS LoadBalancer会将会话粘性默认为禁用。
一旦我启用它,它似乎已经工作,并且不再生成500错误。