![](/img/trans.png)
[英]How to deploy a node.js app to Azure in Visual Studio Online?
[英]How to deploy on CentOS 6.6 vps a Node JS app developed with Visual Studio
这是我对Node JS
第一次Node.JS Tools
,由于我的背景是.NET技术,因此我将Visual Studio
与Node.JS Tools
来为项目开发此Web服务。
我使用express
, node-rest-client
和mysql
模块构建了Web Service。 在我的环境中进行测试时,WS可以很好地工作,现在可以将其部署到我拥有的CentOS 6.6 VPS上的生产环境中,可能是利用systemd
优势。
我习惯于在IIS
上部署WCF
和Web API
Web Service,在这种情况下,过程似乎完全不同。 我尝试使用谷歌搜索,但是答案和教程似乎并不简单,有时甚至是矛盾的。
要将Visual Studio中创建的项目部署到基于* nix的系统上,还需要执行其他一些步骤吗? 我应该如何进行部署,并且(可能)与systemd
运行?
在较高的层次上,下面是部署的基本步骤。 您可以开始手动执行这些操作并了解它们的工作原理。 最终,您希望这些脚本大多通过脚本或诸如ansible或类似的配置管理系统来自动化。
git archive
或通过签出要构建的标签来完成 npm install --production
tar
, npm pack
或zip
的构建中 scp
将其传输到您的服务器,并将其提取到位。
/opt/myapp
是建议安装的位置 nginx
通过阅读用于网站的构建脚本,可以找到更多详细信息。 研究现有技术的另一件好事是heroko node.js构建包 ,当您将其推送到heroku git遥控器时,heroku会以此构建您的应用程序。
这些是高级步骤。 当然,细节上有很多微妙之处,您可以在获得一些经验后加以处理。
示例系统服务文件。 安装到/etc/systemd/system/mynodeapp.service
并运行systemctl daemon-reload
然后systemctl start mynodeapp
。
[Unit]
Description=My node.js App
[Service]
User=mynodejsapp
Group=mynodejsapp
WorkingDirectory=/opt/mynodejsapp
EnvironmentFile=/etc/mynodejsapp/config
Environment=NODE_ENV=production
ExecStart=/usr/bin/node cluster.js
Restart=always
[Install]
WantedBy=multi-user.target
PM2是在生产环境中部署Node.js应用程序的绝佳工具。
PM2是一个流程管理器,负责以下工作:
PM2本身是用Node.js编写的,可以为您设置systemd / init.d / upstart。 此外,它还可以确保您的应用以受限的权限运行(不是以root身份运行,因为system.d在默认情况下可能会这样做)。
使用PM2时,可能的工作流程为:
$ (sudo) npm install -g pm2
$ (sudo) pm2 startup
$ pm2 start /home/centos/app.js
$ pm2 save
PM2有很多选择,还可以为您创建集群 !
有些人喜欢在Node.js应用程序之前安装反向代理(nginx)。 我认为,在以下三种情况下,这可能是一个好主意:
在其他情况下,您不需要使用反向代理。
进一步阅读:-PM2基本自述文件: https : //github.com/Unitech/PM2/blob/master/README.md-PM2高级自述文件: https : //github.com/Unitech/PM2/blob/master/ADVANCED_README。 MD
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.