首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS ELB不填充x-forwarded-for标头

AWS ELB不填充x-forwarded-for标头
EN

Stack Overflow用户
提问于 2014-10-30 04:39:56
回答 2查看 16.8K关注 0票数 3

我们使用的是Amazon Elastic Load Balancer,背后有2个apache服务器。但是,我们无法在应用程序端获得X-Forwarded-Header

我读了一篇类似的文章,但找不到解决方案

Amazon Elastic load balancer is not populating x-forwarded-proto header

这是ELB监听器的配置方式

代码语言:javascript
复制
HTTP 80  HTTP   80  N/A N/A
TCP  443 TCP    443 N/A N/A

如果将443端口更改为HTTPS(安全HTTP)而不是TCP填充报头,其他选项为SSl(安全TCP)

如果这样做有效,我也想知道为什么会有不同,以及是什么造成了不同。

EN

回答 2

Stack Overflow用户

发布于 2015-02-07 05:44:15

亚马逊现在支持使用tcp报头来传递源代码,如本article中所述。

作为时间,Apache本身并不支持proxy protocol。如果你阅读了评论,有一些源代码补丁可以让apache来处理它,或者你可以切换到nginx。

票数 3
EN

Stack Overflow用户

发布于 2016-10-26 18:59:35

我也有同样的要求。我有一个AWS负载均衡器指向端口80上的the服务器。所有HTTPS请求都使用AWS SSL证书进行解析,但我的客户还要求我将所有80端口请求重定向到HTTPS。

我使用的是Apache服务器,因此需要向Virtual Host配置文件(httpd.conf)添加以下行

代码语言:javascript
复制
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]

然后我重新启动了apache服务,然后哇啦!下面是虚拟主机配置,您需要对您的子域执行相同的配置,例如www.yourdomain.com

代码语言:javascript
复制
<VirtualHost *:80>
   RewriteEngine On
   RewriteCond %{HTTP:X-Forwarded-Proto} !=https
   RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
   ServerAdmin webmaster@yourdomain.com
   DocumentRoot "/apache2/htdocs/YourDomainFolderWeb"
   ServerName yourdomain.com
   ErrorLog "logs/yourdomain.com-error_log"
   CustomLog "logs/yourdomain.com-access_log" common
</VirtualHost>

希望它能起作用。更多信息请访问:https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/

最好的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26640245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档