今天特别开心,同时也有兴趣把最近的一些工作总结一下。 第一,方便记忆。 第二, 给需要的同学做参考

node.js 在本地的话,比较容易运行,node app.js 命令就搞定,但是当需要部署到生产环境的话并不容易,因为生产环境需要一直运行,像IIS,tomact一样。

环境:linux Ubuntu 16.04 64位

语言:nodejs

数据库:mongodb

当你需要把代码部署到一台刚买回来的云平台的时候,这台机器是空的,而且假设我们的代码是放在git 上面的。

安装

你需要安装所有需要的一些功能包

Nginx

将下面的命令在linux shell里面运行,或者最新的nginx

sudo -s
nginx=stable
add-apt-repository ppa:nginx/$nginx
apt-get update
apt-get install nginx
exit

安装最新版本的 Node & NPM

curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install nodejs
sudo apt-get install build-essential

安装最新版本的Git

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git


从git中取得最新代码

cd /opt/
mkdir app
chown your_user_name app
git clone https://github.com/xx/example.git app
cd app
npm install

上面的代码路径是你自己放在github上的代码路径,根据自己的代码代替

持续运行24*7

Up until version 14.10 of Ubuntu the default init system is upstart. From Ubuntu 15.10 and Debian 8, the default init system is systemd.

也就是说,你可以将代码委托在upstart和systemd上的

Upstart

upstart是一个job,需要适当的配置一下

description "HPB" author "William Wang <526390800@qq.com>"

start on (filesystem and net-device-up IFACE=lo) stop on runlevel [!]

respawn

env PORT=

chdir /var/www/**/** exec node index.js(**为代码路径)

将上面的配置文件放在 /etc/init/node-app-1.conf中,另外拷贝一份一样的,把端口号改成5001 保存在 /etc/init/node-app-2.conf.

node-app-1 和node-app-2就是2个job,你需要把job跑起来,运行你的代码了,

$ sudo start node-app-
$ sudo start node-app-

Systemd

systemd也类似,

[Service]
ExecStart=/usr/bin/node /opt/app/app.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=node-app-
User=your_app_user_name
Group=your_app_user_name
Environment=NODE_ENV=production PORT= [Install]
WantedBy=multi-user.target

存入/etc/systemd/system/node-app-1.service中,另外也拷贝一份,把端口号改成5001.你一看就知道systemd是服务,现在将2个服务启动

$ sudo systemctl start node-app-
$ sudo systemctl start node-app-


好了,看看效果,网页能打开哈,当然需要输入你云服务器的IP地址+端口号

下一篇将介绍,怎么在nginx 绑定域名

怎么在linux Ubuntu上部署nodejs的更多相关文章

  1. Ubuntu常用命令大全 以及 PHP+MySQL代码部署在Linux(Ubuntu)上注意事项

    PHP+MySQL代码部署在Linux(Ubuntu)上注意事项 https://cloud.tencent.com/developer/article/1024187 Ubuntu常用命令大全 ht ...

  2. java项目 在 linux ubuntu 上的部署相关

    --------------------JDK在linux ubuntu上的安装------------------------------------------------------------ ...

  3. 怎么在linux ubuntu 上的nginx 绑定域名

    前一篇介绍了,如果在ubuntu上运行nodejs,毕竟访问的时候都是用ip地址+端口号,但是上production 环境都需要域名的,IP地址当然不行 读过上一篇的朋友知道了,如果在upstart ...

  4. 在Linux系统中部署NodeJS项目

    在Linux系统中部署NodeJS项目 安装NodeJS 首先进入 Node 官网,下载对应的 Node包 下载下来后是一个后缀为 xz 的压缩包,我们把这个包上传到 Linux 系统中的 /usr/ ...

  5. [转]Linux Ubuntu上架设FTP

    Linux Ubuntu上架设FTP http://www.blogjava.net/stonestyle/articles/369104.html 操作系统:ubuntu (GNU/Linux) 为 ...

  6. 如何在Linux(Ubuntu)上安装Redmine

    费话就不多说了,本文主要描述如何在如何在Linux(Ubuntu)上安装Redmine.通过这篇文章你将了解如下内容. TL;DR 在Linux(Ubuntu)上安装Redmine的基本流程 配置ph ...

  7. linux机器上部署多台Tomcat

    在Linux机器上部署多台Tomcat, 我部署的是Tomcat8,只需要一步,即避免端口号冲突. 在解压后的tomcat目录下,修改conf下server.xml. 修改shutdown端口: &l ...

  8. 如何在Linux服务器上部署禅道

    最近换了新的项目团队,由于新团队比较年轻化,没有实行正规的项目管理,于是我自告奋勇要为团队管理出一份力,帮助团队建立敏捷化的项目管理,经过多方考究和对比后,选择了目前较受欢迎的开源项目管理软件:禅道. ...

  9. 使用nssm在windows服务器上部署nodejs

    Linux上,可以轻松的使用forever或者pm2来部署nodejs应用.但是在windows下就麻烦了,pm2明确的说支持Linux & MacOS,forever在windows下貌似问 ...

随机推荐

  1. C++如何入门

    去 Visual Studiohttps://www.visualstudio.com/zh-hans/?rr=https%3A%2F%2Flink.zhihu.com%2F%3Ftarget%3Dh ...

  2. javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...

  3. 利用angular控制元素的显示和隐藏

    <!DOCTYPE html> <html lang="en" ng-app="myapp"> <head> <met ...

  4. 快速压缩PNG文件在线工具

    https://tinypng.com/ 直接拖移要压缩文件即可

  5. javamail 邮件格式再优化(由详情——>改为统计)

    前言:之前扩展的ant-jmeter支持邮件附件形式上传以及邮件内容的html文件格式. 如图: 由于邮件的内容格式是详情信息,也就是说直观的显示的是case,但由于case的增加,邮件内容越来越大! ...

  6. Java IO学习笔记四

    内存操作流 之前的所有的流操作都是针对文件的,但是有时候只是想要实现数据间转换,此时如果我们想要创建一个文件然后再删除文件,那样显得有点麻烦,因此此时的内存操作流就显得很适合这类的操作,因为它只是在内 ...

  7. linux系统最常用命令(持续更新)

    1.重启服务器 ubuntu系统重启apache:/etc/init.d/apache2 restart linux重启nginx: service nginx restart 重新加载:servic ...

  8. 对js运算符“||”和“&&”的总结

    首先出个题: 如图: 假设对成长速度显示规定如下: 成长速度为5显示1个箭头: 成长速度为10显示2个箭头: 成长速度为12显示3个箭头: 成长速度为15显示4个箭头: 其他都显示都显示0各箭头. 用 ...

  9. v9 调用模型中新增的字段

    在模型中新增字段的时候,可以选择“是否为主表”. 若选是,则前台调用可直接通过字段名调用. 若选否,在前台调用是应在{pc:content}中添加 moreinfo="1",表示允 ...

  10. 【解决】安装compass失败(gem install compass)

    原始日期:2016-01-25 16:26 这个问题比较常见.   很多人在安装ruby后再使用gem install compass命令安装compass,发现安装失败.     [解决方法:] / ...