【问题标题】:Deploy MEANJS app production部署 MEANJS 应用程序生产
【发布时间】:2014-10-12 16:47:42
【问题描述】:

下周我有一个演示,我需要将我正在处理的应用程序(使用 MEANjs 堆栈开发)最好部署到 nginx 等服务器上。
我在 Red-hat box 后面,所以我的问题是将应用程序部署到生产环境时的最佳实践是什么

  • 部署到 nginx 是否可行? (redhat box已经安装了apache,需要和nginx互换吗?)
  • 是否有关于此过程应该做什么和不应该做什么的说明?

我找到了这个How to deploy MEAN.js (Node.js) application to Production environment

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

我也看过其他问题,例如:

所以从最佳实践的角度来看,我们真的需要 ningx、apache 或类似的东西吗?还是只是将内容同步到生产服务器文件夹并使用 Upstart 启动您的应用程序?

Passenger 与 MEANjs 一起使用怎么样?有人用过这个吗?

编辑:

好的,我的 meanjs 服务器在端口 8002 上运行,下面是我的 ningx 配置,据我所知,它工作正常,现在如何保护此设置?

编辑2: 好吧,我在这里学习,所以这就是我找到的 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;
    }
}

【问题讨论】:

  • 我认为您需要了解您的应用程序的功能以及所有部分是什么。 Nginx 和 Apache 是 web 服务器,通常用于代理到您的 Node.js 应用程序 服务器。你不需要使用 Nginx,但它的线程模型比 Apache 高效得多。无论您使用哪个,都需要将它们配置为指向您的 Node.js 应用程序。至于部署的任何其他内容,这完全取决于您的具体需求。做你需要做的事情......这就是我可以根据此处提供的信息获得的具体信息。

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


【解决方案1】:

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

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

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

然后部署节点应用程序,使其侦听某个高端口,例如 8000。您还设置应用程序以信任它的代理(这是 nginx 将执行的操作)。出于安全原因,您只能减慢从 localhost 到节点端口的连接速度。

现在继续配置 nginx。例如,您可以在配置中设置一个 "upstream" 以指向 localhost:8000。然后在 nginx conf 中为您的应用程序和域停止一个虚拟主机,并代理对先前定义的上游的请求。

您可以在 nginx 上设置任何 SSL 证书,这样它的性能会更高(节点往往比使用 SSL 的 nginx 慢得多)。

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

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

【讨论】:

  • 我编辑了我的问题..,“您还设置了您的应用程序以信任它的代理(这是 nginx 将执行的操作)。出于安全原因,您只能减慢从 localhost 到节点端口的连接速度。 “,您能否详细说明一下。根据我目前的配置.. 谢谢
  • 通过代理,我的意思是你 app.set('trust proxy'); 这样 node.js 就信任你的 nginx。
  • 另外,关于您更新的问题。您正在尝试(似乎)使用 Node.js 执行客户端代码。你不应该。您应该将其包含在您的前端页面中,而不是所有未缩小的脚本中,并在浏览器中对其进行测试。
  • 我再次重新编辑,我想我只是错过了 UPSTAR 部分,对于演示就足够了再次感谢,任何其他建议都非常欢迎
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 2016-06-11
  • 2016-12-03
  • 1970-01-01
相关资源
最近更新 更多