托管用于生产的节点应用程序的最佳实践

时间:2020-04-22 17:47:05

标签: node.js express server devops

我必须放置一个节点应用程序以供实时使用,我想知道是否有人可以告诉我有关它的最佳实践。 现在的要求非常简单,我必须在Linux ubuntu服务器中托管两个节点应用程序。 如果有人可以告诉我周围的最佳做法,那将有很大帮助。

  1. 应该在其中运行程序的端口号(最佳实践)是什么。 [节点应用程序公开了一些可被移动应用程序访问的端点]

  2. 有关如何监视服务器内存使用情况的任何提示。 [设置t

  3. 有关优化数据库使用的任何技巧(MySQL在同一服务器上运行)

    const pool = mysql.createPool({
    connectionLimit: 10,
    user: 'root',
    password: '<password>',
    host: '<IP>',
    database: '<DB>',
    port: '3306'
    

    });

连接限制取决于什么?

  1. 有关它的更多提示和技巧。

我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

要回答一些问题并不容易,因为我们没有足够的细节,而且它们很笼统

  1. 80或443(取决于是否需要SSL,例如,还需要创建一个带有让我们加密的证书的证书,这是免费的),如果它可供用户通过浏览器访问。如果不是,则取决于您通常在其他应用程序不知道的范围内选择端口...例如,不要使用mongo的端口:)

  2. 我喜欢PM2,因为我实际上可以在一台计算机上以集群模式运行该应用程序的多个实例,然后还具有自动重启功能。

  3. 有很多用于Linux的监视工具,只是寻找您预算中的一个并使用它,我没有任何建议,因为我主要使用具有以下功能的云解决方案:像内置的那样进行监视。

  4. 很难告诉您如何在不知道查询有问题或什么查询的情况下优化查询...但是...话虽如此,在mysql中解释是您的朋友,对您看到的查询进行解释它使用正确的索引等,请尝试阅读有关mysql中的explain命令的信息

  5. 这完全取决于您需要如何准备生产...您可以包括诸如pingdom或其他监视工具之类的内容,或诸如newrelic之类的实时性能分析/监视工具之类的东西。...这是一个非常普遍的问题,始终由运行生产环境的人员来回答,因此,除非您向我们提供您希望系统执行的操作的确切需求,否则这是我能给您的最好的方法:)此外,还要研究哨兵之类的东西工具

但是,说实话...如果这只是一个简单的应用程序,为什么不像heroku和其他解决方案一样去无服务器呢?您不需要在大多数情况下都弄乱所有这些东西,并且可以将监视和内容作为软件包的一部分

祝你好运。

相关问题