Nodejs 上线部署笔记
1、 购买阿里云的域名和云服务器ECS
云主机安装的是Ubuntu16.04.2 LTS (GNU/Linux 4.4.0-63-generic x86_64)
域名绑定云主机(大陆的云主机得备案,香港的不用备案)
2、创建用户:
阿里云的云主机默认是root用户,直接用root用户操作比较危险,所以创建一个具有sudo 权限的用户(用户名设置为:zyi)。
$ ssh root@47.89.15.1
远程连接到购买的云主机
$ fdisk –l
查看磁盘情况
$ df –h
查看硬盘使用情况
$ adduser zyi
添加用户zyi(回车后会要求输入zyi用户的密码,确认密码)
$ gpasswd –a zyisudo
把用户zyi 加入到sudo 组,使得zyi拥有调用sudo权限的一些命令,但是得输入密码。
$sudo visudo
进入到编辑器界面,找到 root ALL=(ALL:ALL) ALL 这一行,并且在下面加上一行:zyi ALL=(ALL:ALL) ALL 。(ctrl+X)退出保存。
2、 通过ssh 本地无密码登陆云主机
$ssh-keygen -t rsa -C "youremail@example.com"
在本地电脑和云主机分别生成公钥和私钥(~/.ssh目录下),如果以前生成过就不用重新生成了
登陆云主机:
$ ssh zyi@47.89.15.1
$ eval “$(ssh-agent–s)”
$ ssh-add~/.ssh/id_rsa
$ vi~/.ssh/authorized_keys (新建authorized_keys文件,将本地电脑的公钥复制进去,就可以实现本地电脑的无密码登陆该zyi云主机)
3、 安装一些软件
首先登陆到云主机
$ ssh zyi@47.89.15.1
$ sudo apt-get update
$ sudo apt-get install vim openssl build-essentiallibssl-dev wget curl git
$ wget -qO-https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash (安装nvm)
然后通过nvm安装管理node版本
$ nvm install v8.11.1
$ nvm use v8.11.1
$ nvm alias default v8.11.1
$ nvm list
$ npm i pm2 webpack gulp grunt-cli –g (npm安装一些全局的包,最重要的pm2)
这时候可以测试一下node和pm2;
$ vi app.js (新建一个app.js,NODEJS服务)
【//以下是app.js中的内容
var http =require('http');
http.createServer(function(request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type':'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 终端打印如下信息
console.log('Serverrunning at http://127.0.0.1:8888/');
//以上是app.js中的内容】
$ node app.js (看看能不能启动这个node服务访问)
$ pm2 start app.js (通过pm2启动node服务,可以持续运行)
$ pm2 list (查看所有运行的列表)
$ pm2 show app (查看详情)
$ pm2 logs (查看日志)
4、 nginx实现反向代理
登陆到云主机$ ssh zyi@47.89.15.1
$ sudo apt-get installnginx