LoadBalanced AWS EC2实例使用500错误间歇性地使jQuery xhr.send失败

时间:2016-10-28 10:19:35

标签: jquery amazon-web-services amazon-ec2 laravel-5 load-balancing

我在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错误。每次我不更改数据或刷新页面。

这是令我困惑的间歇性行为。异步调用是否可能跳到第二台服务器上,因此会话无效?

还有其他可能性吗?

1 个答案:

答案 0 :(得分:0)

好吧,这取决于Session Stickiness,似乎我在写出来时设法回答了我的问题。

但是如果它可以帮助其他人,则AWS LoadBalancer会将会话粘性默认为禁用。

一旦我启用它,它似乎已经工作,并且不再生成500错误。