【发布时间】: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