怎么在linux Ubuntu上部署nodejs

时间:2023-03-08 23:55:24
怎么在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地址+端口号

怎么在linux Ubuntu上部署nodejs

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