将node项目部署到linux系统上
1.准备工作,电脑上需要有xshell(远程连接服务器)、xftp(上传文件到服务器上)、下载node安装包(linux版)
2.使用xshell连接服务器后,进入根目录cd / 创建文件夹名mkdir opt 进入opt目录中 cd /opt
3.ctrl + alt + f 打开xftp ,左侧是Windows目录 右侧界面linux目录把刚才的node安装包拖入到opt项目中,本地应用项目也一起拖放到这个目录中
4.解压缩node安装包 tar -xzvf node-v7.5.0-linux-x64.tar.gz (node-v7.5.0-linux-x64.tar.gz这个要写你自己的下载的包名称)
在linux下,大部分情况下不能直接解压tar.xz的文件。
需要用xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包
5.配置node环境变量
vi /etc/profile
NODE_HOME=/opt/node-v7.5.0-linux-x64
PATH=${PATH}:${NODE_HOME}/bin
export NODE_HOME
按下esc : qw 保存退出 或者 esc :x
6.退出重新连接xshell,命令行node -v就可以看到是否安装好。关了标签重新打开,要不然可能还是原来的版本
补充:
i 插入
esc :q 退出编辑模式
esc :w 保存
esc :q 退出编辑模式
esc :qw | :x 保存并推出
esc :q! 强制退出
7.修改项目中的需要用到的请求地址,在hosts文件中修改 vi /etc/hosts;
8.npm install -g cnpm --registry=https://registry.npm.taobao.org 安装淘宝镜像
cnpm install 安装插件
启动一下node app.js
虽然启动了app.js但是仍然无法连接,可能与端口号没开有关,此时要关闭防火墙,
service iptables status//查看状态
service iptables stop//关闭
9.进入刚才拖进来的应用项目中,可以看到packge.json那一级,创建启动脚本 touch start.sh。添加内容为 vi start.sh
i 插入内容
#!/bin/sh
basepath=$(cd `dirname $0`; pwd)
pm2 start $basepath/app.js --name candy # app.js(node项目中的启动文件名称)
10.为启动脚本添加可运行权限 命令 chmod +x start.sh
11.接下来我们使用pm2来运行node
cnpm i pm2 -g
pm2 start id名 | app名 (也可以直接使用./start.sh)
补充:
pm2 list ll 显示进程列表
pm2 start id
pm2 stop id
pm2 delete id
pm2 restart id
14.项目使用了nginx做负载均衡,node项目部署到了两台服务器中,所以还需要再到Nginx服务器中 vi /opt/nginx/conf/extconf/ngnix-user.conf(我的目录文件地址)
配置下两台服务器的地址
upstream aas_frontend {
server 10.10.12.xxx:7410 max_fails=3 fail_timeout=20s weight=4;
server 10.10.12.xxx:7410 max_fails=3 fail_timeout=20s weight=4;
}
nginx装在/ 目录下的opt目录中
进入root目录 cd ~ 重启脚本 先停止(./stopNginx.sh) 再启动(./startNginx.sh)
startNginx.sh文件内容是 : /opt/nginx/sbin/nginx &
stopNginx.sh文件内容是 : /opt/nginx/sbin/nginx -s stop