在 Linux 服务器上的何处部署 node.js 应用程序?
Posted
技术标签:
【中文标题】在 Linux 服务器上的何处部署 node.js 应用程序?【英文标题】:Where to deploy node.js apps on a Linux server? 【发布时间】:2012-06-03 17:11:50 【问题描述】:我在 Linux 服务器上运行 4 个独立的 Node.js 应用程序,具有不同的端口和前面的代理。
由于我(现在)是服务器中的唯一用户,因此我将应用程序放置在何处以及如何运行它们并不重要。目前我的应用程序位于我的主目录下(~/app1/
、~/app2/
等)。
所以我的问题是:我应该将应用放置在哪里以便可以在多个用户之间共享?有没有类似/var/www
的标准地方?
【问题讨论】:
How to deploy node.js? 的可能重复项 没错,这个问题部分解决了我的问题。我会改写这个问题。 “多用户共享”是什么意思?您是否打算同时多次运行每个应用程序? 好问题。与 Apache 一样,您有www-data
和 /var/www
。 node.js 有一些常见的类似做法吗?
【参考方案1】:
遵循此处的答案指南 - https://serverfault.com/a/96420 表示 /opt/node 可能是一个更好的地方,因为它是一个为用户添加的程序文件保留的包罗万象的目录
【讨论】:
你不是说/opt吗? 我认为正确的答案其实是 /srv - unix.stackexchange.com/questions/35807/… 我觉得应用程序应该在 /opt 中,文件在 /srv 中提供,在 Node.js 的情况下,它是一个应用程序,而不是共享文件。 pathname.com/fhs/pub/…【参考方案2】:如果您在 Linux 服务器上为 Node JS 应用程序使用 AWS Elastic bean 堆栈,那么它应该在 /var/app/current/
目录中
【讨论】:
【参考方案3】:我使用https://github.com/visionmedia/deploy 来部署我的应用程序。它将创建一个/var/www/productname
目录。在该目录中,您有源、当前和共享。共享目录有log
和pid
文件。
我发现了一个很好的目录结构,所以我在所有项目中都使用了这个结构。
【讨论】:
Deploy 看起来很不错,谢谢!我很快就会尝试亲自查看它,并会尽快回复您。 我认为/var/nodejs
更好/更安全,因为过去/var/www
被Apache 等Web 服务器使用(而不是新标准/var/www/html
)。对 Node.js 应用程序使用 /var/www
可能会增加所有服务器端源代码对未经授权的用户可见的风险。【参考方案4】:
我在同一台服务器上运行除了 Node.js 之外的 Apache,所以我真的不喜欢在同一个目录中拥有 Apache 和 Node.js 的应用程序。我的 Apache 托管应用程序位于传统的 /var/www/ 路径中,我将 Node.JS 应用程序放在 /var/node/ 下。这是由于我在 Apache(动态虚拟主机)和 Node.JS 中都设置了一些自动化。
关于我的设置和自动化代理和 Apache 部署的更多信息可以在这里找到:How to use vhosts alongside node-http-proxy?
【讨论】:
非常好的建议,谢谢!在进行一些自我实验后,我会稍后再讨论这个问题。以上是关于在 Linux 服务器上的何处部署 node.js 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
黑客可以访问/复制/下载部署在Node Js上的JS服务器端代码吗?
如何在 Ubuntu/Linux 中部署 Node.js 应用程序?
如何从部署在 AWS Elastic beanstalk 上的 node.js express 应用程序获取客户端 IP?
如何在 Amazon Linux 2 平台上使用 Elastic Beanstalk 部署的 Node Js 中实现 gzip 压缩?