【问题标题】:Running node on EC2在 EC2 上运行节点
【发布时间】:2013-09-13 23:56:28
【问题描述】:

我有一个运行 Ubuntu 12.04 的 EC2 实例。我已经安装了 nodejs 和 mongo。这个实例也有一个分配给它的 IP 地址。

我想让我的应用程序(nodejs 应用程序)从连接到本地 mongo db 的目录(比方说 /var/www/node/my_app)运行(我已经手动安装了 db,它不是来自亚马逊市场,但是这是出于开发/测试目的,因此目前性能不是问题)。然后我希望有一个与 IP 地址链接的域(这是通过我的域提供商完成的并且已经准备好)又链接到我的应用程序(从 /var/www/node/my_app 运行)所以当我去 www .mydomain.com 我会看到我的应用在我的网络浏览器上运行。

我还希望能够从 /var/www/node/my_app2 运行另一个应用程序,该应用程序可以通过另一个域或子域(例如 app2.mydomain.com)访问。

我可以使用 PHP/MySQL/Webmin/Apache 轻松完成所有这些工作。我需要做的就是将我的应用程序放在特定文件夹中,并让 webmin 管理/创建指向特定域/子域的虚拟主机。

我的问题是:有人可以逐步向我解释(或将我指向教程/站点/文档)如何使用节点进行相同的设置吗?我知道这可能意味着安装其他软件(例如 nginx)?

背景:我已经阅读了很多关于如何从 node 开始的教程,其中解释了如何在本地机器上安装 node,创建服务器来监听端口(例如 8080)以及如果我访问http://localhost:8080 on我的本地计算机可以工作(是的,我已经尝试过并且确实可以工作)但是我无法在我的 EC2 上复制它。更不用说我宁愿不使用 www.mydomain.com:8080(例如),而是希望能够从同一个域(使用子域)运行多个应用程序。

谁能帮忙?

非常感谢

【问题讨论】:

  • 这个问题太宽泛了。您要求某人为您进行谷歌搜索,而您可以自己进行。不要期望立即找到答案,而是要有耐心并继续努力了解事情的运作方式、相关性以及如何前进。
  • 运行新实例,运行yum update -y,然后按照官方指南将 mongodb 安装为服务和 node.js(在 Linux 上正常安装)。然后使用 npm (npm install) 安装 express.js 和 mongodb,并遵循 express.js 的第一个示例。这里没有错误的方法。官方资源上的在线教程和指南都有很好的文档记录,涵盖了任何可能的场景。在 EC2 上设置 node.js,google 在第一页有大约 5 篇文章和教程。遇到问题是正常的 - 只要能够理解它们并解决问题。
  • 不,我不希望任何人为我做任何谷歌搜索。我的主要问题是这种方法是否真的可以通过这种设置实现。我还没有找到一个教程来详细解释如何从单个节点框运行多个应用程序/站点(具有不同的域)。我看不出这个问题太宽泛了,因为我有一组非常具体的要求,我想知道这是否可能。
  • 对于多个域,使用 nginx 作为代理。请记住,它会导致代理 websockets 流量的复杂性(需要下载和重新编译),但可以满足大多数需求。或者使用任何流行的 node.js 代理管理模块来根据域名将流量代理到不同的进程。

标签: node.js mongodb amazon-ec2


【解决方案1】:

这是我运行 MEAN 应用程序的 Linux VM 的设置。

  • 我在我的 VM 上的非特权端口 (>= 1024) 上运行我的节点应用程序。我使用 Upstart/Monit 组合来启动它并保持运行。您可以查看blog post 了解如何设置它。

  • 对于端口 80 流量,我使用 NGINX 作为节点应用程序的反向代理。 NGINX 将允许您根据传入的 URL 路由传入的流量。这是link 到一个关于如何设置该部分的好的 SO 页面。

【讨论】:

    【解决方案2】:

    考虑使用 http-proxy:http://blog.nodejitsu.com/http-proxy-intro

    或者nginx基于域名进行代理。

    【讨论】:

    • 以上确实帮助我朝着我的想法前进,但它还不是我想要的解决方案。也许我想要的还没有。我不明白的一件事是,在终端上,如果我使用节点 myapp.js 运行我的应用程序(包括反向代理),它将运行。但是,一旦我离开终端,应用程序就会停止运行。我该如何解决?
    • 使用screen或服务将节点作为后台进程运行。
    猜你喜欢
    • 2018-06-16
    • 2016-02-01
    • 2017-01-08
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    相关资源
    最近更新 更多