在CentOS7系统上部署nodejs
来源:互联网 发布:权志龙ins视频软件 编辑:程序博客网 时间:2024/05/23 02:01
在CentOS7系统上部署nodejs
新建用户
- 登录root用户,创建新用户
ssh root@IP (输入密码完成登录)
adduser tom
password tom (设置tom用户的密码 或 passwd tom)
whereis sudoers (查找sudoers文件)
ls -l /etc/sudoers (查看sudoers文件的权限)
chmod -v u+w /etc/sudoers (赋予sudoers写的权限)
vi /etc/sudoers (在root用户下面添加tom用户)
chmod -v u-w /etc/sudoers - 登录tom用户,创建ssh连接 (在tom文件夹下)
mkdir .ssh
chmod 700 .ssh
ssh-keygen -t rsa -b 4096 -C "email@xx.com" (一路回车,创建秘钥)
eval "$(ssh-agent -s)"
cd .ssh
ssh-add id_rsa (添加秘钥到ssh服务器中,不行的话试试 ssh -add id\_rsa)
vi authorized_keys (直接退出即可,这样相当于创建了一个有写的权限的文件)
chmod 600 authorized_keys (600只有属主有读写权限,700只有属主有读、写、执行权限,777所有用户都有读、写、执行权限)
cat id\_rsa.pub >> authorized\_keys (将id\_rsa.pub的内容添加到authorized_keys中)
ls -l 查看详情,没问题,进行下一步 - 本地电脑ssh配置秘钥
// 进入c盘的用户/administrator目录下,看是否有.ssh文件夹,若没有,创建一个:
打开git bash
cd C/Users/Administrator
mkdir .ssh
ssh-keygen -t rsa -b 4096 -C "email@xx.com"
eval "$(ssh-agent -s)"
ssh -add: id_rsa (id\_rsa文件的路径) - 将本地公钥放到tom的公钥管理中
ssh tom@IP + 密码
vi .ssh/authorized\_keys (将本地的id\_rsa.pub复制粘贴到authorized_keys中,保存退出)
eval "$(ssh -agent -s)"
// 测试本地是否可以不需要密码登录服务器
搭建开发的测试环境
- 安装系统应用
sudo yum install vim openssl build-essential libssl-dev wget curl git g++ gcc
git --version - 安装nvm,在github上找到安装包地址,curl或者wget的都可以,任选其一
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.3/install.sh | bash
// 测试是否安装成功:
nvm -v (报错处理: 在.bash_profile 文件中的PATH后追加 $HOME/tom/.nvm, 相邻的$HOME用半角:隔开) - 安装node(启动新的终端)
nvm ls-remote (查看可安装的node版本)
nvm install v6.10.2 (安装某个稳定版本即可,lattest LTS: Boron)
npm -v
node -v - 安装nodejs项目依赖包
npm install pm2 webpack glup grunt-cli express -g
pm2 -v
项目安装调试
- 在tom文件夹下创建一个文件夹nodeapps,里面创建一个测试文件
mkdir nodeapps
chmod 700 nodeapps
vi test/app.js (复制一个简易的node服务器代码)
node test/app.js (外部能正常访问服务器)
npm i express body-parser -S
pm2 start test/app.js (能正常启动,OK) - 本地创建项目,提交到git仓库,然后在服务器上的nodeapps文件夹下:
git clone "https://git仓库地址"
npm i
pm2 start /app.js (app.js的路径)
// 测试能跑起来,则服务器环境部署完成
项目远程发布
- 配置git仓库(以coding.net(国内的,速度快,有免费的私有仓库)的免费仓库为例)
- 在coding.net创建项目,
- 在仓库设置中选择部署公钥,分别把本地和远程服务器上的公钥添加到仓库“新建部署公钥”选项中
- 测试本地上传到这个仓库是否可以通过ssh(点击仓库地址的url前面的https可弹出ssh地址路径,复制即可)的方式免密上传
- 测试远程服务器clone这个仓库是否可以通过ssh(点击仓库地址的url前面的https可弹出ssh地址路径,复制即可)的方式免密clone
- 远程部署发布项目
- pm2.json配置文件 (配置文件内容详解:http://pm2.keymetrics.io/docs/usage/deployment/)
- 该配置文件是个json数组,
- 多个服务器同时部署依次放到apps对应的数组中即可
- 采用cluster模式启动了4个服务进程;如果服务占用的内存超过300M,会自动进行重启。
- 重要: 在部署项目时,需要安装npm依赖时,需要用到:
"post-deploy": "npm install && pm2 start app.js",
,卸载deploy的production中即可,它会在项目部署到服务器上后,启动前运行npm install 命令安装项目依赖。
…
- pm2.json配置文件 (配置文件内容详解:http://pm2.keymetrics.io/docs/usage/deployment/)
- 项目远程发布命令:
- 项目发布命令:
pm2 deploy app.json production setup
- 项目发布命令:
pm2 deploy app.json production
- 项目发布命令:
- 项目修改:
pm2命令
``` // 启动 pm2 start app.js // 直接启动nodejs服务器 pm2 start app.js --name my-app // --name 可以对本次启动的进行命名 pm2 start app.js -i 0 // 根据CPU核数启动进程个数 pm2 start app.js --watch // 实时监控app.js的方式启动,当app.js文件有变动时,pm2会自动reload // 监控 pm2 monit // 程序信息 pm2 describe id|all // 停止 pm2 stop id|all // 重载 pm2 reload id|all // 重启 pm2 restart id|all // 删除pm2进程 pm2 delete id|all // 日志操作 pm2 logs [--raw] // 在流中显示所有进程日志 pm2 flush // 清空所有日志文件 pm2 reloadLogs // 重装所有的日志 // 升级pm2 npm install pm2@lastest -g // 安装最新版本的pm2 pm2 updatePM2 // 升级pm2 // 帮助 pm2 --help```
阅读全文
0 0
- 在CentOS7系统上部署nodejs
- 在centos7上部署kubernetes
- 在centos7上部署kubernetes
- 在centos7上部署kubernetes
- 在centos7系统环境下安装nodejs
- nssm在windows服务器上部署nodejs
- Redis在Centos7上的安装部署
- 在Centos7上部署安装RobotFramework
- Redis在Centos7上的安装部署
- Redis在Centos7上的安装部署
- 在CentOS7上部署OpenStack 步骤详解
- Redis在Centos7上的安装部署
- 在CentOS7上部署OpenStack 步骤详解
- Centos7下nodejs-mongodb部署
- Centos7虚拟机系统在windows上搭建
- 在物理机上安装centos7系统
- CentOS7上部署Kubernetes
- Centos7上部署nginx
- 理解OAuth 2.0
- NLP概率图模型之隐马可夫模型需要的基础知识
- inline 函数相关说明
- C#中创建和使用动态链接库
- Java工厂设计模式
- 在CentOS7系统上部署nodejs
- ln链接
- Android Fragment 真正的完全解析(上)
- 对相机标定,然后对视频进行校正
- c3p0中的c3p0.preferredTestQuery配置,mysql和oracle配置不一样
- 利用元祖返回多个不同的对象
- 一个好看的js加载loading的div样式
- C语言打印九九乘法表
- 115. Distinct Subsequences