【发布时间】:2015-09-06 23:59:18
【问题描述】:
我在这上面花了两天时间。希望有人知道答案。
我有一个在端口 443 上运行 SSL 的 apache 服务器。 我有一个在 8081 端口上运行 SSL 的 node.js 服务器。
在客户端中,我尝试包含 socket.io/socket.io.js 文件,如下所示:
<script src="https://my_url.com:8081/socket.io/socket.io.js"></script>
我没有收到 404(未找到)。在 Chrome javascript 控制台中,我得到 Status = (failed) 和 Type = undefined。我已经尝试过我找到的建议(使用 src="localhost.." 等,但它们也不起作用)。
它适用于我的 http 版本。我包含这样的文件:
<script src="http://my_url.com:8080/socket.io/socket.io.js"></script>
不知道为什么 SSL 版本不工作。有任何想法吗?提前致谢!!
【问题讨论】:
-
你能更详细地解释一下系统的架构吗,我不明白为什么你有两台服务器运行 ssl 以及谁提供脚本
-
我正在使用 apache 为我的 php 页面提供登录等服务。然后应用程序页面包括所有脚本文件等。这就是我调用 socket.io.js 的地方。如果我不制作 node.js ssl,那么我会收到警告“...从my_url.com:8080/socket.io/socket.io.js 提供不安全的内容”。
-
我无法让节点 https 服务器工作。但找到了另一个解决方案。我正在使用 Amazon 负载均衡器来终止 SSL 并将 http 发送到节点服务器。它工作得很好。我对我的 SSL Apache 流量做同样的事情。仅供参考 - 如果你走这条路,你需要在负载均衡器中使用 TCP (SSL) 和 TCP 选项来处理节点流量。
标签: apache node.js ssl amazon-web-services socket.io