【问题标题】:Web app deployment using NodeJs and Express使用 NodeJs 和 Express 部署 Web 应用程序
【发布时间】:2020-01-15 20:58:35
【问题描述】:

我的问题更多是关于人们现在如何部署生产网络应用程序/最佳方法等。

目前,我们正在考虑将使用 Express 的 NodeJS 后端以及我们制作的前端投入生产。

将前端和后端拆分到各自独立的服务器上,或者直接从 NodeJS 后端在一台服务器上渲染 HTML 文件是否有意义?

如果您有任何其他建议,请列出优点/缺点以及多人开发团队如何轻松管理源代码,因为有单独的人员分为前端和后端。

注意:这是实际的网络应用,而不是静态网站或登录页面

【问题讨论】:

    标签: node.js backend web-deployment devops progressive-web-apps


    【解决方案1】:

    我最近经历了这个决策过程,我选择将系统的静态和动态部分一起部署

    如何决定这个问题?

    您的前端和后端是否紧密联系在一起?很多前端改动需要相应的后端改动吗?如果是这样,这就是将两者部署在单个服务器中的原因。这就是我的情况。

    使用 express 的静态对象服务器功能提供静态 HTML / Javascript / CSS / 图像资源是否有意义?它可能:Express 可以让你做一些好事,比如.js 缩小、.less.sass 文件的即时翻译等等。它还具有处理 CORS、速率限制和其他信息安全功能的良好设施。如果您想要这些东西,那就是在单个服务器中部署两者的原因。这也是我的情况。

    您会安装面向网络的反向代理 (nginx) 服务器吗?这是一个足够棘手的配置任务,您可能希望执行一次而不是两次。这就是将两者部署在单个服务器中的原因。我的情况。

    你有很多静态对象要服务吗?这就是单独部署静态对象和 Web 应用程序的原因:纯 apache 或 nginx 比 node.js 更适合提供静态内容。我只有几个静态对象。

    在您的 devops 中,两个单独的部署是否有可能使事情变得更复杂和更不可靠? (有人会忘记同时部署静态和动态吗?)这是将两者部署在单个服务器中的原因。我这样做是因为我希望测试、暂存和生产部署能够以相同的方式工作。

    Git 和其他源代码控制系统足够强大,可以让团队为单个 repo 做出贡献,而不会影响彼此的工作。

    【讨论】:

    • 感谢您的快速响应和精心编写的答案!您是否通过使用中间件来处理在节点中提供静态文件以保留没有文件扩展名的路由名称,或者您是否只是保留文件扩展名?谢谢!
    • 我保留了扩展名;我的静态对象大多是 .png、.css。 .js 和其他此类文件。删除这些扩展将使我的 html 更难理解,以便下一个人处理它。
    • 应该指定。我的意思是如果你有任何静态服务的 .html 文件
    猜你喜欢
    • 2018-09-14
    • 2021-06-26
    • 2020-04-22
    • 2016-12-03
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    相关资源
    最近更新 更多