【问题标题】:Enable https on dockerised Mern app? Digital Ocean在 dockerised Mern 应用程序上启用 https?数字海洋
【发布时间】:2020-08-03 08:37:26
【问题描述】:

我已经构建了一个 MERN 堆栈应用程序,并将我的 Nodejs(express) 服务器和我的 React 前端分离到单独的 docker 容器中,并且可以使用 compose 文件启动它们。

我希望在运行 docker/docker-compose 的 Digital Ocean Droplet 上将其投入生产,并且想知道如何使用 ssl 保护它?我需要在每个容器上启用证书,还是只在 droplet 上启用证书。

在研究这个主题时,我看到很多人在他们的前端(React)中使用 Nginx,但不确定这有什么关系?

【问题讨论】:

  • 欢迎来到 SO!请在每篇文章中只问一个问题以避免混淆。

标签: node.js docker nginx https mern


【解决方案1】:

处理 SSL 的最常用方法是添加一个 Reverse Proxy(例如 Nginx)来为您的所有环境执行 SSL 卸载。

                    +----------+
                    |          |
                    |  Client  |
                    |          |
                    +----+-----+
                         |
                         | myDomain.net
                         |              
                     [INTERNET]
                         |
                         |
                         v  :443
                +--------+-------+
            /*  |                |   /api
     +----------+  Revese Proxy  +---------+
     |          |   (Gateway)    |         |
     |          +----------------+         |
     |                                     |
     |                                     |
     | :8080                               | :3000
     |                                     |
+----+----------+                +---------+-----+
|               |                |               |
|      SPA      |                |    Backend    |
|  (webserver)  |                |  (API server) |
|               |                |               |
+---------------+                +---------------+

您需要在撰写中添加一个额外的组件。你可以叫它gateway。现在您可以将 SSL 作为机密传递,现在它将充当网络的中间件,对传出数据进行加密和对传入数据进行解密。

我找到了一个可能非常适合您的设置的教程:https://medium.com/@pentacent/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71

【讨论】:

  • 非常感谢!这正是我需要的帮助!
猜你喜欢
  • 2020-01-23
  • 1970-01-01
  • 2020-06-30
  • 1970-01-01
  • 2021-10-30
  • 2013-12-16
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多