带有 http 和 https 的服务器(node.js)-最佳方法

带有 http 和 https 的服务器(node.js)-最佳方法

我有一个应用程序节点.jsexpress.js服务器,我想从 4 点提供访问:

  1. https://www.example.com
  2. http://www.example.com
  3. https://example.com
  4. http://example.com

我不确定这里更好的方法是什么。

  1. 运行两个服务器(https.createServerhttp.createServer)并将所有内容从 http 服务器重定向到 https 服务器
  2. 或者在域面板上进行一些重定向?

那么“www”与“非 www”又如何呢?它也应该由托管/域名面板设置吗?
这对我来说是个新领域,我不知道,至少我希望这是合适的 StackExchange 论坛。任何有更多解释的链接都很好

答案1

最佳实践是在实际的 Web 服务器(Apache / nginx)中处理所有这些问题,该服务器通过反向代理在其后面有应用程序服务器。

答案2

简单的方法是使用 Nginx (https://www.nginx.com) 它有一个反向代理,因此您可以为同一个应用程序处理多个位置。您甚至可以配置平衡加载器。例如,您可以配置一个带有 www 的路径,另一个不带有 www,另一个带有 http,另一个带有 https。所有这些都无需接触节点中的代码库应用程序。

答案3

另一个不错的选择是使用Caddy服务器作为代理,将其配置为响应所有四个域,然后在内部代理到您的应用程序。

有了它,您可以获得上述所有好处nginx,以及自动 HTTP/2 和 SSL让我们加密包括办理续订。如果您已经拥有证书,则可以使用自己的证书。

安装和配置非常简单。

例如,配置文件(Caddyfile正如它的名字)看起来像(粗略估计,没有实际测试过):

    www.example.com, example.com {
      tls [email protected]
      proxy / http://127.0.0.1:8080
    }

相关内容