AWS Elastic Load Balancer不会将HTTP标头转发到EC2实例

凯斯115

我当前正在Amazon Elastic Beanstalk上运行Python Flask应用程序。当我测试该应用程序时,它在本地都可以正常工作(我使用Postman发送GET&POST请求)。但是,在AWS上,它不起作用,因为到达我的EC2实例(在负载均衡器后面)的请求不包含Authorization标头。似乎负载均衡器剥离了标头。我在这里做错什么了吗?

这是当我在本地和Elastic Beanstalk上打印出标题时所得到的比较。

在本地

[2017-07-04 13:18:14,650] [INFO] [common.decorators] Headers = Host: localhost:5000 Connection: keep-alive Content-Length: 151 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Cache-Control: no-cache Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop Content-Type: application/json Authorization: Bearer ad9fd4d9-6ce6-497b-855a-dcebebdad65b Postman-Token: xxxxx Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.8

弹性Beanstalk:

[2017-07-04 17:27:03,813] [DEBUG] [common.decorators] Headers = Accept-Language: en-US,en;q=0.8 Accept: */* Host: dev.onetext.com X-Forwarded-For: 66.30.13.108 Content-Type: application/json Postman-Token: xxxxx Connection: keep-alive Accept-Encoding: gzip, deflate, sdch, br X-Forwarded-Proto: https Cache-Control: no-cache X-Forwarded-Port: 443 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

凯斯115

感谢@notionquest添加的评论,我在https://forums.aws.amazon.com/thread.jspa?messageID=729128找到了解决方案

我通过在.ebextensions文件夹下添加具有以下内容的新文件来解决此问题:

files: "/etc/httpd/conf.d/wsgihacks.conf": mode: "000644" owner: root group: root content: | WSGIPassAuthorization On

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Web部署到AWS Elastic Load Balancer之后的EC2实例

阻止对AWS Elastic Beanstalk和Elastic Load Balancer的HEAD请求

AWS Elastic Load balancer 背后的 Jenkins 实例并启用粘性

AWS中的Elastic Load Balancer(ELB)和Route 53

AWS Elastic Load Balancer的SSL证书配置错误

将SSL证书上传到AWS Elastic Load Balancer

AWS Elastic Load Balancer有选择地启用SSL

Amazon AWS EC2-如何限制仅从Elastic Load Balancer接收流量?

AWS-Elastic Load Balancing是否实际上阻止LOAD BALANCER故障转移?

使用适用于Python的AWS开发工具包访问AWS Elastic Load Balancer

如何在AWS Elastic Load Balancer上实施HTTP严格传输安全性(HSTS)?

将EC2 Elastic Load Balancer从HTTP重定向到HTTPS

基于令牌的身份验证是否需要AWS Elastic Load Balancer粘性会话?

为AWS Elastic Load Balancer指定的公共子网中有8个免费IP地址吗?

.net Core-带有AWS Load Balancer和Elastic Beanstalk的HTTPS不起作用

无法通过AWS Elastic Load Balancer进行与MySQL容器的SSL加密连接

仅具有一个EC2实例的Amazon Elastic Load Balancer是否有意义?

AWS CloudFormation:Application Load Balancer的目标组不适用于多个EC2实例

AWS并分解Elastic Beanstalk实例

EC2关闭时,Elastic Load Balancer的成本过高。我有什么选择?

带有Elastic Load Balancer SSL的oAuth

Elastic Load Balancer 可以自动扩展吗?

Amazon ec2和AWS Elastic Beanstalk之间的区别

AWS Elastic Beanstalk与EC2容器服务(ECS)-Docker

是什么导致EC2实例无法添加到Elastic Load Balancer或无法通过运行状况检查?

如何在AWS Load Balancer响应中禁用Apache HTTP标头信息?

如何与 Elastic Beanstalk 多容器环境共享 AWS EC2 实例

阻止AWS Elastic Beanstalk创建新实例

如何使用Elastic Load Balancer和EC2 / Nginx解决502 Bad Gateway错误,以处理HTTPS请求?