课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html

项目github地址:https://github.com/hellozhangran/happy-egg-server

通过前面的讲解,可以完成一个基本的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/node
    • mv ~/download/node-v12.13.0-linux-x64 /opt/node
  • 创建软连接:

    • ln -s /opt/node/node-v12.13.0-linux-x64/bin/node /usr/local/bin/node
    • ln -s /opt/node/node-v12.13.0-linux-x64/bin/npm /usr/local/bin/npm
  • 验证node与npm已经安装成功:

    • npm -v

    • node -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.gz
    • cd ~/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/bin
    • source /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.1

其中的data目录与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端口号抹去,不过现在可以通过蹩脚的方式拿到自己腾讯云服务器上的接口了。

技巧篇

参考:

【重学Node.js 第5篇】部署项目到腾讯云服务器的更多相关文章

  1. 【重学Node.js 第4篇】实现一个简易爬虫&启动定时任务

    实现一个简易爬虫&启动定时任务 课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://gith ...

  2. 【重学Node.js 第3篇】mongodb以及mongoose的使用

    mongodb以及mongoose的使用 本篇为这个系列的第三篇,想看更多可以直接去github的项目:https://github.com/hellozhangran/happy-egg-serve ...

  3. 【重学Node.js 第1&2篇】本地搭建Node环境并起RESTful Api服务

    本地搭建Node环境并起RESTful Api服务 课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https: ...

  4. 打算写一个《重学Node.js》系列,希望大家多多支持

    先放上链接吧,项目已经开始2周了:https://github.com/hellozhangran/happy-egg-server 想法 现在是2019年11月24日,还有人要开始学习Node.js ...

  5. 部署Flask项目到腾讯云服务器CentOS7

    部署Flask项目到腾讯云服务器CentOS7 安装git yum install git 安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sq ...

  6. Tomcat+Nginx+Linux+Mysql部署豆瓣TOP250的项目到腾讯云服务器

    写在前面 因为前面有写过一篇关于豆瓣的top250的电影的可视化展示项目,你可以移步http://blog.csdn.net/liuge36/article/details/78607955了解这个项 ...

  7. 译\Node.js应用的持续部署

    Node.js应用的持续部署 翻译前 翻译自:https://blog.risingstack.com/continuous-deployment-of-node-js-applications/ 正 ...

  8. Node.js Stream-基础篇

    Node.js Stream - 基础篇 邹斌 ·2016-07-08 11:51 背景 在构建较复杂的系统时,通常将其拆解为功能独立的若干部分.这些部分的接口遵循一定的规范,通过某种方式相连,以共同 ...

  9. 手把手教你学node.js之一个简单的express应用

    一个简单的express应用 目标 建立一个 lesson1 项目,在其中编写代码.当在浏览器中访问 http://localhost:3000/ 时,输出 Hello World. 挑战 访问 ht ...

随机推荐

  1. re实战记录

    re实战记录 针对网页中的空格符 一般使用的.,但是它不能匹配\n,所以使用[\s\S]或者[\d\D]匹配所有字符 import re l1=r''' <div class="thu ...

  2. Kafka topic Schema version mismatch error - org.apache.kafka.common.protocol.types.SchemaException

    Problem description: There is error messge when run spark app using spark streaming Kafka version 0. ...

  3. 2019-2020-1 20199304《Linux内核原理与分析》第三周作业

    1.操作系统是如何工作的? 计算机三个法宝(3个关键性的方法机制): 存储程序计算机.函数调用堆栈.中断机制. 1.1堆栈: 在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构.堆栈都是一种数 ...

  4. 自然语言处理(NLP)相关学习资料/资源

    自然语言处理(NLP)相关学习资料/资源 1. 书籍推荐 自然语言处理 统计自然语言处理(第2版) 作者:宗成庆 出版社:清华大学出版社:出版年:2013:页数:570 内容简介:系统地描述了神经网络 ...

  5. Java修炼——接口详解_接口的特征_使用接口的意义

    接口中可以包含的内容: 抽象法和非抽象方法(jdk1.8,必须使用default的关键字),属性(public static final)常量. 接口和类的关系 1.(继承了接口)类必须去实现接口中的 ...

  6. [TimLinux] JavaScript 中循环执行和定时执行

    1. 两对函数 // 循环执行 // 在每个毫秒数之后,调用函数 var timeid = window.setInterval(函数名, 毫秒数); window.clearInterval(tim ...

  7. k近邻聚类简介

    简介 在所有机器学习算法中,k近邻(K-Nearest Neighbors,KNN)相对是比较简单的. 尽管它很简单,但事实证明它在某些任务中非常有效,甚至更好.它可以用于分类和回归问题! 然而,它更 ...

  8. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  9. 201871010119-帖佼佼《面向对象程序设计(java)》第十五周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...

  10. CSS中@support的用法

    这段时间一直在调试浏览器的兼容性问题,了解到了@support的这个属性,记录下: CSS中的@support主要是用于检测浏览器是否支持CSS的某个属性,其实就是条件判断,如果支持某个属性,你可以写 ...