尝试上传媒体文件时,AWS EC2会使用HTTP 502进行响应

时间:2016-08-12 03:57:14

标签: amazon-ec2 tomcat7 image-uploading amazon-rds

我使用AWS EC2实例(与负载均衡器关联)来托管连接到AWS RDS上的数据库的服务器代码。

Android应用是服务器的客户端之一,并使用HttpUrlConnection进行连接。当应用程序进行POST调用以上载编码的媒体文件时,需要很长的等待时间才能从EC2服务器实例获取响应。此外,收到回复时,它是 HTTP 504 。因此,我致力于将EC2实例的空闲超时值增加到600秒,之后我获得了 HTTP 502 ,因为其中的健康状态为Elastic Beanstalk应用程序切换为警告严重

要交叉检查我的服务器代码,我使用Localhost Tomcat v7.0服务器(类似于http://localhost:8080/abc/..。)使用Postman上传相同的数据,我获得了成功并且 HTTP 201 。所以现在我很清楚服务器代码没有问题。

但是当我尝试通过Postman访问AWS端点时,我得到的HTTP 502如下所示:

enter image description here

是否与EC2 / Load balancer或RDS本身的配置有关?

2 个答案:

答案 0 :(得分:1)

错误可能正是它所说的:代理服务器收到来自上游服务器的无效响应。有没有办法让你看到发送到代理服务器的确切内容?如果您在EC2实例上看不到任何内容,请尝试设置     ProxyBadHeader忽略 在你的httpd.conf中。通过这种方式,您可以看到Apache是​​否忽略了数据,因为某些错误代替了标头。您的案例听起来非常熟悉:http://blog.somepixels.net/en/502-proxy-error-uploading-from-apache-mod_proxy-to-tomcat-7/

答案 1 :(得分:0)

我解决了这个问题。我按照上面提到的@Eddimull提供的this链接来配置Timeout和代理头。同样在我的服务器代码上,在成功上传(POST)后,我返回了旨在作为响应的一部分上传的数据。这意味着我不得不将编码的媒体文件作为响应的一部分发送回去,因为我被无效响应所困扰。相反,现在我发送一个更简单的响应,这解决了这个问题。