在AWS ELB上启用代理协议时遇到问题

我遵循http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html上的指南,在我的TCP侦听器(端口80和443)上启用代理协议。 我在其中一个EC2实例上运行以下命令:

aws elb create-load-balancer-policy \ --load-balancer-name 'proxy-connect-test' \ --policy-name EnableProxyProtocol \ --policy-type-name ProxyProtocolPolicyType \ --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true echo "Enabling policy on :80" aws elb set-load-balancer-policies-for-backend-server \ --load-balancer 'proxy-connect-test' \ --instance-port 80 --policy-names 'EnableProxyProtocol' echo "Enabling policy on :443" aws elb set-load-balancer-policies-for-backend-server \ --load-balancer 'proxy-connect-test' --instance-port 443 \ --policy-names 'EnableProxyProtocol' 

我可以确认使用describe-load-balancerslogging了策略:

 "BackendServerDescriptions": [ { "InstancePort": 80, "PolicyNames": [ "EnableProxyProtocol" ] }, { "InstancePort": 443, "PolicyNames": [ "EnableProxyProtocol" ] } ], 

但是,当我向这两个端口发出请求时,使用tcpdump时看不到Proxy Protocol头。 我可以使用HTTP和HTTPS通过后端服务器成功请求,但我似乎没有得到预期的PROXY头。

我没有在我的客户端(openssl s_client,Firefox)和后端Web服务器(其中tcpdump正在观察连接)之间使用任何其他types的代理。 侦听器是TCP:80 – > TCP:8080和TCP:443 – > TCP:8443。

我必须做其他事情才能在我的ELB上启用代理协议?

侦听器是TCP:80 – > TCP:8080和TCP:443 – > TCP:8443。

您已经将该策略应用于“实例端口”80和443.实例端口是指后端实例上的端口,因此在策略中应将其实际设置为8080和8443。