怎么在linux Ubuntu上部署nodejs
今天特别开心,同时也有兴趣把最近的一些工作总结一下。 第一,方便记忆。 第二, 给需要的同学做参考
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的更多相关文章
- Ubuntu常用命令大全 以及 PHP+MySQL代码部署在Linux(Ubuntu)上注意事项
PHP+MySQL代码部署在Linux(Ubuntu)上注意事项 https://cloud.tencent.com/developer/article/1024187 Ubuntu常用命令大全 ht ...
- java项目 在 linux ubuntu 上的部署相关
--------------------JDK在linux ubuntu上的安装------------------------------------------------------------ ...
- 怎么在linux ubuntu 上的nginx 绑定域名
前一篇介绍了,如果在ubuntu上运行nodejs,毕竟访问的时候都是用ip地址+端口号,但是上production 环境都需要域名的,IP地址当然不行 读过上一篇的朋友知道了,如果在upstart ...
- 在Linux系统中部署NodeJS项目
在Linux系统中部署NodeJS项目 安装NodeJS 首先进入 Node 官网,下载对应的 Node包 下载下来后是一个后缀为 xz 的压缩包,我们把这个包上传到 Linux 系统中的 /usr/ ...
- [转]Linux Ubuntu上架设FTP
Linux Ubuntu上架设FTP http://www.blogjava.net/stonestyle/articles/369104.html 操作系统:ubuntu (GNU/Linux) 为 ...
- 如何在Linux(Ubuntu)上安装Redmine
费话就不多说了,本文主要描述如何在如何在Linux(Ubuntu)上安装Redmine.通过这篇文章你将了解如下内容. TL;DR 在Linux(Ubuntu)上安装Redmine的基本流程 配置ph ...
- linux机器上部署多台Tomcat
在Linux机器上部署多台Tomcat, 我部署的是Tomcat8,只需要一步,即避免端口号冲突. 在解压后的tomcat目录下,修改conf下server.xml. 修改shutdown端口: &l ...
- 如何在Linux服务器上部署禅道
最近换了新的项目团队,由于新团队比较年轻化,没有实行正规的项目管理,于是我自告奋勇要为团队管理出一份力,帮助团队建立敏捷化的项目管理,经过多方考究和对比后,选择了目前较受欢迎的开源项目管理软件:禅道. ...
- 使用nssm在windows服务器上部署nodejs
Linux上,可以轻松的使用forever或者pm2来部署nodejs应用.但是在windows下就麻烦了,pm2明确的说支持Linux & MacOS,forever在windows下貌似问 ...
随机推荐
- Java中设计模式之工厂模式-4
一.工厂模式由来 1)还没有工厂时代:假如还没有工业革命,如果一个客户要一款宝马车,一般的做法是客户去创建一款宝马车,然后拿来用. 2)简单工厂模式:后来出现工业革命.用户不用去创建宝马车.因为客户有 ...
- 搭建rtmp直播流服务之1:使用nginx搭建rtmp直播流服务器(nginx-rtmp模块的安装以及rtmp直播流配置)
欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) 一.方案简要 首先通过对开发方案的仔细研究(实时监控.流媒体.直播流方案的数据源-->协议转换-->服务器--&g ...
- datagrid 添加、修改、删除(转载)
原链接:JQueryEasyUI学习笔记(十)datagrid 添加.修改.删除 基于datagrid框架的删除.添加与修改: 主要是批量删除,双击表单修改.选中行修改,增加行修改,再有就是扩展edi ...
- 使用OTP动态口令(每分钟变一次)进行登录认证
GIT地址:https://github.com/suyin58/otp-demo 在对外网开放的后台管理系统中,使用静态口令进行身份验证可能会存在如下问题: (1) 为了便于记忆,用户多选择有特征作 ...
- jdbc的配置及jdbc连接常用数据库(mysql、sqlserver、Oracle)
1.连接SQL Server数据库 import java.sql.*; publicclassMain{publicstaticvoid main(String[] args){String dri ...
- python 标准库 -- configparser
configparser 用于处理 ini 格式的配置文件, 其本质上是利用 open 来操作文件. 示例文件 : [zhangsan] name = zhangsan age = 12 job = ...
- crontab中引入环境变量(比如需要执行tomcat的关闭启动)
起因 crontab中的定时任务,执行到关闭tomcat时,报环境变量找不到 解决方案 1.使用 . /etc/profile 引入环境变量 ###推荐, 实测ubuntu12 成功 2.使用 sou ...
- Linux常用操作命令(三)
查看linux日志某几行 用逆序显示命令tail查看 命令格式:tail [ -r ] [ -n Number ] [ File ] [一]从第3000行开始,显示1000行.即显示3000~39 ...
- 如何解决java文件上面有错,但是文件夹上面不显示的错误
查了网上很多办法,都是解决不了的,不是我说什么,有些人真的人云亦云,没解决的瞎**乱转发 解决方法是:换个工作空间(workplace)即可,不行你打我
- Java基础(3) -字符串
字符串-String 1.定义&&初始化 使用双引号把字符括起来 String str = "test"; 2.字符串的提取-substring String a ...