【问题标题】:JS file not being served over HTTPSJS 文件未通过 HTTPS 提供
【发布时间】:2016-03-28 04:21:39
【问题描述】:

我在一个网站上打开了 HTTPS,我发现一个 JS 文件,当从我的模板中的脚本标签请求时,直到现在可以正确提供服务,现在一直失败。

有效的请求类似于:

http://dev.mysite.com:54346/socket.io/socket.io.js

而没有太大不同的那个:

https://dev.mysite.com:54346/socket.io/socket.io.js

查看lsof -i :5346top 的输出并停止脚本我已经能够弄清楚我们以forever 开头的节点脚本实际上以某种方式回答了有效的请愿书,但不是另一个。我对节点不太了解,但是查看该脚本的代码及其要求 (socket.io) 我没有看到任何让我认为它只能用于 HTTP 而不能用于 HTTPS 的东西。

我实际上并不了解这是如何工作的,因为我还没有看到任何 Apache 配置,它甚至可以远程表示“将此请求重定向到此进程”之类的意思。

我能想到的唯一解决方案是通过 HTTPS 将请愿重定向到 HTTP,但我尝试使用 mod_proxymod_rewrite 却一点运气都没有。

提前致谢!

【问题讨论】:

    标签: javascript node.js mod-rewrite socket.io mod-proxy


    【解决方案1】:

    听起来像是端口问题。如果服务器配置为将端口 54346 用于 http,则您将为 https 设置另一个端口。您是否使用过 Fiddler 或其他工具来查看您的安全服务器在哪个端口上?我通常将 80 用于 http,443 用于 https。

    有关为 Apache 服务器绑定端口的信息,请参阅 http://httpd.apache.org/docs/current/bind.html

    【讨论】:

    • 谢谢,稍后我会看看 Fiddler。除了 vhosts .conf 文件之外,我在哪里可以检查使用的端口?在那里,服务器被配置为监听 HTTP 的 80 端口和 HTTPS 的 443 端口;我不知道 Apache 配置在哪里使用端口 54346。
    • 用指向 Apache 页面的链接更新了答案,以配置您的端口。我是 Microsoft 人员,20 年没有使用过 Apache,但该页面似乎有你需要的东西。
    • 感谢您的链接,但我的虚拟主机中没有使用任何Listen 指令,至少在sites-available 目录中的文件中;这些虚拟主机的配置为 HTTP 指定端口 80,为 HTTPS 指定端口 443,所以一切似乎都是正确的。我将尝试检查端口重定向或转发配置,因为我不知道还要查看什么。
    【解决方案2】:

    我会将其标记为已解决,因为我们现在非常确定它更多是 nodejs 问题而不是 Apache conf 问题。无论如何,谢谢,埃德·威廉姆斯!

    【讨论】:

    • 别担心!原来我只需要用node设置一个HTTPS服务器。
    猜你喜欢
    • 2019-02-22
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2020-07-24
    • 1970-01-01
    • 2010-11-26
    • 2014-05-17
    相关资源
    最近更新 更多