部署MEANJS应用程序生产

时间:2014-08-19 14:22:35

标签: node.js deployment nginx passenger mean-stack

我将在下周进行演示,我需要将我正在使用的应用程序(使用MEANjs堆栈开发)部署到nginx之类的服务器上。
我在Red-hat框后面,所以我的问题是将应用程序部署到生产环境时的最佳做法

  • 部署到nginx是否可行? (redhat box已经安装了apache,我是否需要与nginx交换?)
  • 是否有关于此过程应该做什么和不做什么的任何注意事项?

我发现了How to deploy MEAN.js (Node.js) application to Production environment

而我正试图发表评论,但没有得到要求的分数:D所以无论如何,不​​太了解nginx部分(放在前面)所以这意味着你实际上并不是将应用程序部署到nginx?

我还会查看其他问题:

所以我们真的需要从最佳实践角度看ningx,apache等吗?或者前进的方法只是将内容rsync到生产服务器文件夹并使用Upstart启动你的应用程序?

使用Passenger和MEANjs使用它的人怎么样?

编辑:

好吧,所以我在下面的端口8002上运行我的meanjs服务器是我的ningx配置,这是我可以告诉所有的工作,现在如何保护这个设置?

EDIT2: 我在这里学习,所以这就是我找到的https://groups.google.com/forum/#!topic/meanjs/_Kb07-tvlzU
显然是为了在运行" grunt build"之后部署它。命令就是 像这样运行:

node server.js

显然它将从production.js获得所有配置 不完全确定它是否准备好生产。
现在我觉得我应该将它移到像/ var / www / theAppFolder /这样的地方。

这是nginx配置

upstream proj{
  server 127.0.0.1:8002;
}

server{
  listen 0.0.0.0:80;
    server_name dep01.local  poc;
    access_log /var/log/nginx/dep01.log;

    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://proj/;
      proxy_redirect off;
    }
}

1 个答案:

答案 0 :(得分:1)

在nginx后面部署您的节点应用程序绝对可行。

您的红帽盒可以托管生产服务器。

您需要将node和nginx都安装到服务器上。

然后部署节点应用程序,以便它监听一些高端口,比如说8000.你还设置你的应用程序以信任它的代理(这是nginx将要做的)。出于安全原因,您只能减慢从localhost到节点端口的连接速度。

现在继续配置nginx。例如,您可以在配置中设置“upstream”以指向localhost:8000。然后在nginx conf中停止虚拟主机以获取您的应用和域以及对先前定义的上游的代理请求。

你可以在nginx上粉碎设置任何SSL证书,这样我会更高效(节点往往比使用SSL的nginx慢得多)。

或者,你可以直接将节点绑定到端口80(和443用于SSL)并跳过使用nginx,但这取决于服务器,应用程序,受众和环境以及您的个人偏好和体验。

有关任何步骤的详细信息,请尝试提供更多详细信息。