我在Hypnotoad上运行一个Mojolicious应用程序。它正在侦听端口443,可以通过https访问。
如何将所有HTTP请求转发到HTTPS?
答案 0 :(得分:1)
根据此post您的服务器只收听443端口。所以你应该添加另一个应用程序来处理80端口。
在hypnotoad前添加nginx或apache并在那里执行的最佳方法(重定向,重写)。
但是如果你不想拥有nginx,你可以编写Mojolicious应用程序 监听two ports并挂钩before_dispatch处理所有请求并使重定向仅更改方案。
如果你想我可以尝试写这样一个最小的例子。
UPD。我决定添加example
答案 1 :(得分:0)
你不能,至少不能直接。虽然你可以使用iptables或类似的方法转发端口80到443,但实际上这是行不通的,因为浏览器不希望必须为普通的HTTP URI进行SSL握手。您必须在端口80上运行一个简单的Web应用程序(可能带有单独的Hypnotoad或类似的),它可以通过重定向到HTTPS来回答每个请求 - 可能是某个登录页面,也可能是更改方案所请求的相同URI。