【发布时间】:2015-12-09 05:25:21
【问题描述】:
我正在 Hypnotoad 上运行 Mojolicious 应用程序。监听443端口,可以通过https访问。
如何将所有 HTTP 请求转发到 HTTPS?
【问题讨论】:
标签: perl mojolicious
我正在 Hypnotoad 上运行 Mojolicious 应用程序。监听443端口,可以通过https访问。
如何将所有 HTTP 请求转发到 HTTPS?
【问题讨论】:
标签: perl mojolicious
根据post,您的服务器仅监听 443 端口。所以你应该添加另一个应用程序来处理 80 端口。
在 hypnotoad 前面添加 nginx 或 apache 并在那里执行(重定向、重写)的最佳方式。
但如果你不想拥有 nginx,你可以编写 Mojolicious 应用程序 它监听 two ports 并有钩子 before_dispatch 处理所有请求并仅更改重定向方案。
如果您愿意,我可以尝试编写这样的最小示例。
更新。我决定加example
【讨论】:
你不能,至少不能直接。虽然您可以使用 iptables 或类似的方法将端口 80 转发到 443,但实际上这不起作用,因为浏览器不希望对纯 HTTP URI 进行 SSL 握手。您必须在端口 80 上运行一个简单的 Web 应用程序(可能带有单独的 Hypnotoad 或类似的),它通过重定向到 HTTPS 来回答每个请求——可能是某个登录页面或与请求相同的 URI,只是方案发生了变化。
【讨论】: