我使用 Boost Beast 作为 aws EC2 (Ubuntu) 中的 Web 服务器。
经过一番折腾,我终于让 https 可以工作了。 http 更容易。
但是,现在我希望能够将所有 http(端口 80)流量重定向到 https(端口 443)。
我似乎无法让 Beast 同时侦听两个端口(如果可能的话,不介意保留端口 80 并使用安全证书),如果我运行两个单独的程序,一个用于端口 80,另一个用于 443,则什么也没有有效(尽管它们实际上是自己工作的)。
一种解决方案是使用 aws 负载均衡器支付额外费用。如果可能的话我想避免这种情况。
另一个解决方案是添加额外的 AMI 并使用简单的重定向网页(但这也是额外的成本 - 我很吝啬。)
非常感谢任何帮助。
您需要修改 Beast 服务器以处理 HTTP 和 HTTPS,因此您可以正常配置 boost.beast 以侦听同一应用程序中的 80 和 443 端口。
重定向 HTTP 流量 对于 HTTP 端口 (80) 上的传入请求,使用
301 Moved Permanently
状态代码进行响应,并在 Location 标头中提供 HTTPS 等效 URL。
提供 HTTPS 流量 使用当前的 HTTPS 处理逻辑处理端口 443 上的请求。
如果您可以提供更多详细信息,那么澄清会很有用。