- 课程介绍看这里:juejin.cn/post/684490…
- 项目github地址:github.com/hellozhangr…
通过前面的讲解,可以完成一个基本的node api服务了,接下尝试把项目部署到刚买的腾讯云上。
登陆服务
- 购买腾讯云容器,购买后会把账号信息通过腾讯云站内信发给你,里面有公网ip和初始密码,后面ssh登陆会用到。
- 登陆云linux。本地Mac命令行输入:ssh root@xx.xx.xx.xx,根据提示输入密码即可。
安装Node环境
cd && mkdir download && cd download- 下载node:
wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz - 解压node文件:
tar xvf node-v12.13.0-linux-x64.tar.xz - 把解压好的文件移动到/opt/node下:
mkdir /opt/nodemv ~/download/node-v12.13.0-linux-x64 /opt/node
- 创建软连接:
ln -s /opt/node/node-v12.13.0-linux-x64/bin/node /usr/local/bin/nodeln -s /opt/node/node-v12.13.0-linux-x64/bin/npm /usr/local/bin/npm
- 验证node与npm已经安装成功:
npm -vnode -v
安装git
- 安装:
yum -y install git,这种安装方式快捷,但只能安装较低版本。下面安装新版本git - 删除已有git:
yum remove git - 下载源码包:
wget -O ~/download/git-2.21.0.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.21.0.tar.gz - 安装编译依赖:
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker - 解压:
tar -zxf ~/download/git-2.21.0.tar.gzcd ~/donwload/git-2.21.0
- 检验相关依赖,设置安装路径:
./configure --prefix=/opt/git - 编译安装:
make && make install - 配置PATH变量:
vi /etc/profile
GIT_HOME=/usr/local/git export PATH=$PATH:$GIT_HOME/binsource /etc/profile
- 使用https的链接git clone代码是比较简单的,如果用ssh则需要在本地生成SSH Key,目前优先使用https的方式,但可能会报
fatal: Unable to find remote helper for 'https',如果遇到该问题则:yum install curl-devel # cd to wherever the source for git is cd /usr/local/src/git-1.7.9 ./configure make make install
安装mongodb
- 下载源码:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.9.tgz,事实证明,wget比curl下载快多了,curl应该适合做请求不适合下载包。看到很多教程用curl下载mongo包,说明一下。 - 解压:
tar -zxvf mongodb-linux-x86_64-4.0.9.tgz - 移动到合适目录
mv mongodb-linux-x86_64-3.0.6 /opt/mongodb - 配置PATH:
vi /etc/profile - 创建配置文件:
cd /opt/mongodb && touch mongodb.conf输入:其中的# Store data in /opt/mongodb/data instead of the default /data/db dbpath = /opt/mongodb/data # Append logs to /opt/mongodb/log/mongodb.log logpath = /opt/mongodb/log/mongodb.log logappend = true # Only accept local connections bind_ip = 127.0.0.1data目录与mongodb.log文件要自己手动创建 - 启动mongod服务:
mongod --config /opt/mongodb/mongod.conf &,后面加&是为了服务在后台运行
安装pm2
- 安装:
npm install pm2@latest -g - 启动node:
pm2 start express/app.js - 重启:
pm2 restart express/app.js - 开启监控模式:
pm2 monit - 通过配置文件启动:
pm2 start pm2.json- 可以配置console.log等收集到日志文件
- 配置开启的实例数,pm2通过多个实例做负载均衡
- 详细可查看本项目中的pm2.json文件
试一下你的服务
- 在本地启动node后通过localhost:3000访问,而在腾讯云启动后就要通过腾讯云的ip:3000访问了
- 后面可以通过配置nginx把3000端口号抹去,不过现在可以通过蹩脚的方式拿到自己腾讯云服务器上的接口了。
技巧篇
- 如何保持ssh服务连接不断开?
使用ssh命令时,可以增加ServerAliveInterval参数设置心跳时间,比如设置60秒发送一次心跳包:
ssh -o ServerAliveInterval=60 root@xx.xx.xx.xx详见:ngwind.github.io/2019/01/25/…
参考:
- 腾讯云大学 cloud.tencent.com/edu
- 腾讯云计算学习路径课:cloud.tencent.com/edu/paths/s…
- Node开发环境部署到腾讯云 juejin.cn/post/684490…