当前位置: 首页 > 面试题库 >

如何使带HTTPS / SSL的Amazon ELB与Web套接字配合使用?

左康安
2023-03-14
问题内容

目前看来这似乎行不通。我在Amazon
ELB后面使用Faye和NodeJS。当我打开HTTPS时,连接不再可以代理。我在这里找不到未解决的问题:https
:
//forums.aws.amazon.com/message.jspa?
messageID
=283293。任何人都可以使它正常工作吗?在运行我自己的HAProxy实例之外,是否还有其他工作?


问题答案:

根据我们自己的测试,我确认在Web / Sockets上可以成功地在TCP / SSL上配置ELB,而不是在HTTP /
HTTPS上配置ELB。缺点有两个:

1)正如arturnt指出的那样,您不会发粘。

2)您将失去检索客户端身份的能力。WebSocket服务器看到的原始IP始终是ELB,与HTTP / HTTPS配置不同,不会将X-Forwarded-
For标头添加到请求中。

2013年7月更新 :亚马逊刚刚添加了对 代理协议的 支持,该 协议
解决了上述第二个缺陷。使用代理协议,即使ELB在TCP级别(而不是HTTP)下工作,也会添加包含客户端原始IP的标头。完整详细信息:
http :
//docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-
protocol.html

2016年8月更新 :亚马逊刚刚宣布了新的 AWS Application Load Balancer
,它在第7层支持WebSocket(以及HTTP / 2.0和基于内容的路由)。参见
https://aws.amazon.com/it/blogs/aws/new-aws-application-load-
balancer/



 类似资料:
  • 我正在尝试在使用用Python编写的套接字服务器与使用Flutter Web制作的客户端之间建立连接。 我测试了各种套接字包,如adhara_socket_io和flutter_socket_io,但都不起作用。我在Android上尝试了相同的代码片段,但它们也不起作用。 我继续搜索,找到了这个代码片段。它使用包中的类。 这个连接到Python服务器,并从Android发送数据,但当我从Web测试

  • 我一直在研究HandlerThread类,因为最初我使用的是一个简单的线程和处理程序,但是在Android中使用NetworkOnMainThreadException出现了一个裁剪器。 我似乎无法理解如何将套接字之类的东西引入到HandlerThread中,您可以在其中运行阻塞代码。但是您不能使用HandlerThread来实现这一点,因为您不应该覆盖run,因为这是循环器所在的位置。 而且我不

  • 我可以通过JavaScript直接将Web套接字连接到我的PHP守护进程服务器:var websocket = new WebSocket(“ws://IP:PORT”);这将正确握手,但是当我尝试nginx代理 http://IP 它无法接收Sec-WebSocket-Key的标头值并且握手失败。 -最近更新:JavaScript根本无法连接,原因是:语法错误:指定了无效或非法的字符串! 变量:

  • 问题内容: 我有2个应用程序,一个是Servlet / Tomcat服务器,另一个是Android应用程序。 我想使用HttpURLConnection在两者之间发送和接收XML。 码: 现在,我需要使用SSL来发送XML以确保安全。 首先,我使用Java Keytool生成.keystore文件。 然后我将XML代码放在Tomcat的server.xml文件中以使用SSL 然后,将其更改为Htt

  • 问题内容: 我最近安装了隐私vpn,事实证明启用的openvpn会破坏docker。 当我尝试运行时,出现以下错误 禁用vpn可以解决此问题(但是我宁愿不禁用它)。有什么办法可以使这两者和平共处?我使用debian jessie,并且我的openvpn具有以下版本字符串 很多人通过禁用openvpn来“解决”此问题,因此我专门询问如何使这两个工具同时工作。 如果这有什么不同,我的vpn提供程序是:

  • 问题内容: 如何创建SSL套接字连接? 我真的需要创建密钥库吗?该密钥库应该与我所有的客户端应用程序共享吗? 我用以下代码创建了一个服务器: 我用以下代码在android上创建了一个客户端: 但是当我尝试连接时,会引发以下错误: 问题答案: 您需要一个证书来建立ssl连接,您可以在密钥库中加载证书,也可以加载证书本身。我将显示一些有关keystore选项的示例。 您的代码需要一些参数才能运行: 您