Tag: http headers

我如何检测一个TCP连接是否已经从一个SSL连接转发?

我正在处理的特定场景是尝试连接到AWS弹性负载均衡器后面的websocket连接,同时实施https / ssl而不是http / tcp。 要从http / s启用TCP / SSL升级,负载平衡器上的协议必须已设置为TCP,而不是端口80和HTTP上的HTTP,而不是443上的HTTPS,两者都转发到80端口上TCP。 但是,将协议设置为TCP / SSL的一个副作用是x-forwarded-proto头文件不再被设置,如下所示: Amazon Elastic负载均衡器不会填充x-forward-proto头 这使得使用http / tcp到https / ssl 301来传入请求的下一个挑战有点问题,因为这通常依赖于检查x-forwarded-proto头。 关于具体情况的更多细节:存在一个Docker容器,其中运行的Meteor.js进程依次驻留在AWS Elastic Beanstalk应用程序中(默认情况下具有Nginx代理层,但这不是由于使用docker工具,只需从docker集线器中取出一个集装箱定义就可以访问),位于上述ELB之后。 最终,我会在请求通过ELB,Nginx和Docker代理层时检查我的应用程序可用的头文件,试图解决客户端提出的原始请求是以http还是https 传入https://请求标题: { host: 'whatever.elasticbeanstalk.com', 'x-real-ip': '999.99.99.99', 'x-forwarded-for': '999.99.99.99', 'cache-control': 'max-age=0', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'upgrade-insecure-requests': '1', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36', 'accept-encoding': 'gzip, […]