下周我有一个演示,我需要将我正在开发的应用程序(使用MEANjs堆栈开发)部署到nginx之类的服务器上。
我在一个红帽盒子后面,所以我的问题是,当将应用程序部署到生产环境中时,最佳实践是什么
- 部署到nginx是可行的吗?(红帽盒已经安装了apache,我需要与nginx交换吗?)
- 在这个过程中有什么应该做和不应该做的说明吗?
我发现这个如何部署MEAN.js (Node.js)应用程序到生产环境
和我试图评论,但没有必要的点:D所以无论如何,不太理解nginx部分(放在前面),所以这意味着你没有实际部署应用程序到nginx ?
我还研究了其他问题,如:
- 部署Node.js生产服务器
- 为生产环境部署Node.js应用
所以从最佳实践的角度来看,我们真的需要ningx, apache之类的吗?或者直接将内容同步到生产服务器文件夹,然后用Upstart启动你的应用?
如何使用客运与MEANjs有人使用这个吗?
编辑:好了,我的meanjs服务器在端口8002上运行下面是我对ningx的配置,据我所知,它正在工作好吧,现在如何保护这个设置?
EDIT2:嗯,我在这里学习,所以这就是我发现https://groups.google.com/forum/#!主题/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后面部署你的node应用程序绝对是可行的。
您的红帽盒可以托管分娩服务器。
你需要同时安装node和nginx到服务器。
然后部署节点应用程序,让它监听一些高端口,比如8000。你还设置你的应用程序信任它的代理(这是nginx会做的)。出于安全考虑,您只能减慢从localhost到节点端口的连接。
现在继续配置nginx。例如,您可以在配置中设置"upstream"指向localhost:8000。然后在nginx配置中为你的应用程序和域名和代理请求停止一个虚拟主机到前面定义的上游。
你可以在nginx上设置任何SSL证书,这样它会更性能(node往往比带SSL的nginx慢得多)。
或者,你可以直接将node绑定到端口80(和443 SSL),跳过使用nginx,但这取决于服务器,应用程序,受众和环境以及你的个人喜好和经验。
有关任何步骤的详细信息,请尝试提供更多详细信息。