Amazon web services SSH隧道后面的AWS ELB重定向不';行不通

Amazon web services SSH隧道后面的AWS ELB重定向不';行不通,amazon-web-services,http,amazon-elb,portforwarding,Amazon Web Services,Http,Amazon Elb,Portforwarding,我们有一个HTTP服务器监听端口X,还有一个AWS经典HTTP负载平衡器监听同一端口X并转发到主机端口X ELB不能路由到internet,因此为了连接到它,我们通过bastion主机创建了一个从本地端口Y到ELB端口X的SSH隧道 简单的HTTP请求工作正常,但是当服务返回HTTP重定向响应(303)时,ELB将其转换为端口Y 所以它看起来像: -->(303重定向) 跳过ELB并直接隧道到服务主机时,重定向工作正常 根据HTTP主机头中的指定,是否有任何方法可以配置ELB将重定向转换到原始端

我们有一个HTTP服务器监听端口X,还有一个AWS经典HTTP负载平衡器监听同一端口X并转发到主机端口X

ELB不能路由到internet,因此为了连接到它,我们通过bastion主机创建了一个从本地端口Y到ELB端口X的SSH隧道

简单的HTTP请求工作正常,但是当服务返回HTTP重定向响应(303)时,ELB将其转换为端口Y

所以它看起来像: -->(303重定向)

跳过ELB并直接隧道到服务主机时,重定向工作正常


根据HTTP主机头中的指定,是否有任何方法可以配置ELB将重定向转换到原始端口?

ELBs不重写重定向。使用类似于
curl-v的东西直接连接到web服务器http://localhost:X -H'Host:localhost:Y'
应该证明,当条件完全相同时,服务器实际上发出了此重定向。如果您将真实的端口号放在问题中可能会更好,因为具体的端口号实际上可能是相关的。确实,服务器正在发出重定向,但是当通过端口转发直接连接到它时,它会发出正确的重定向。我怀疑ELB修改了
主机
头-是这样吗@Michael sqlbot?另一个选项是服务基于ELB添加的
X-Forwarded-
头创建重定向。。有没有办法禁用它们?没有,ELB也不会修改
Host
头,但是建议的
curl
测试的目的是使服务器在循环中没有ELB的情况下发出相同的错误重定向,我相信在浏览器设置头的情况下会发生这种情况。
X-Forwarded-*
头表示正确的标准行为,不能在HTTP模式下禁用。在服务主机上运行
tcpdump
,并获得以下主机头:
host:localhost:X
。由于浏览器不知道端口X,这意味着在这一过程中会有一些东西更改主机头,而它可能毕竟是负载平衡器@迈克尔:有什么想法吗?