【问题标题】:Launching project to cloud/production (Node.js + Vue.js)将项目启动到云/生产(Node.js + Vue.js)
【发布时间】:2020-06-12 16:50:58
【问题描述】:

前段时间,我开始了一个项目,后端使用 Node.js,前端使用 Vue.js。在开发中执行我的项目时,我从未发现任何困难。

我知道使用 Vue.js 可以生成 dist 文件夹,但我不明白如何使用它。

现在我正在尝试使用我的项目创建一个 docker 映像,但我对它的结构应该如何工作表示怀疑,我应该为后端创建一个映像,为前端创建另一个映像,即使有可能建议这样做吗?我打算使用 docker 映像在 Google Cloud 上启动该项目。

我对数据库的问题也有疑问,是否也应该在同一个docker镜像中还是应该和Back-end分开?

This is my project structure

【问题讨论】:

    标签: mysql node.js vue.js production-environment


    【解决方案1】:

    这取决于您的预期流量。如果您期望更高的负载,水平缩放建议将它们放在单独的图像中,因为这样您可以分别扩展前端和后端。

    前端

    无论您是否使用 CI/CD,在构建您的前端映像时,您都希望在前端使用 Web 服务器,有多种选择,选择您最知名的(Apache httpd 或 Nginx...等)。确保如果您使用的是 vue-router,则将重写配置为将所有内容发送到 index.html,否则您的路由将无法正常工作。要在 dockerfile 中完成,请将 dist 输出复制到 html 根目录。

    数据库

    关于数据库,将它放在同一个容器中意味着如果后端或前端由于任何原因出现故障,您的数据库也会出现故障。不要那样做。

    将它放在同一个映像中但作为单独的容器运行可能会起作用,尽管实现这一点可能非常乏味,但老实说,我真的不明白这一点。只需使用专用的数据库映像并单独部署即可。

    【讨论】:

    • 我这辈子都没看过这么好的解释,非常感谢!我现在确切地知道我应该学习和做什么。 我欠你一个!
    猜你喜欢
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 2014-05-09
    • 2021-05-07
    相关资源
    最近更新 更多