【重学Node.js 第5篇】部署项目到腾讯云服务器
课程介绍看这里: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/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/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端口号抹去,不过现在可以通过蹩脚的方式拿到自己腾讯云服务器上的接口了。
技巧篇
- 如何保持ssh服务连接不断开?
使用ssh命令时,可以增加ServerAliveInterval参数设置心跳时间,比如设置60秒发送一次心跳包:ssh -o ServerAliveInterval=60 root@xx.xx.xx.xx
详见:https://ngwind.github.io/2019/01/25/保持ssh服务连接不断开的方法/
参考:
- 腾讯云大学 https://cloud.tencent.com/edu
- 腾讯云计算学习路径课:https://cloud.tencent.com/edu/paths/series/cloudcomputing
- Node开发环境部署到腾讯云 https://juejin.im/post/5abb32d2f265da23a141f35c
【重学Node.js 第5篇】部署项目到腾讯云服务器的更多相关文章
- 【重学Node.js 第4篇】实现一个简易爬虫&启动定时任务
实现一个简易爬虫&启动定时任务 课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://gith ...
- 【重学Node.js 第3篇】mongodb以及mongoose的使用
mongodb以及mongoose的使用 本篇为这个系列的第三篇,想看更多可以直接去github的项目:https://github.com/hellozhangran/happy-egg-serve ...
- 【重学Node.js 第1&2篇】本地搭建Node环境并起RESTful Api服务
本地搭建Node环境并起RESTful Api服务 课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https: ...
- 打算写一个《重学Node.js》系列,希望大家多多支持
先放上链接吧,项目已经开始2周了:https://github.com/hellozhangran/happy-egg-server 想法 现在是2019年11月24日,还有人要开始学习Node.js ...
- 部署Flask项目到腾讯云服务器CentOS7
部署Flask项目到腾讯云服务器CentOS7 安装git yum install git 安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sq ...
- Tomcat+Nginx+Linux+Mysql部署豆瓣TOP250的项目到腾讯云服务器
写在前面 因为前面有写过一篇关于豆瓣的top250的电影的可视化展示项目,你可以移步http://blog.csdn.net/liuge36/article/details/78607955了解这个项 ...
- 译\Node.js应用的持续部署
Node.js应用的持续部署 翻译前 翻译自:https://blog.risingstack.com/continuous-deployment-of-node-js-applications/ 正 ...
- Node.js Stream-基础篇
Node.js Stream - 基础篇 邹斌 ·2016-07-08 11:51 背景 在构建较复杂的系统时,通常将其拆解为功能独立的若干部分.这些部分的接口遵循一定的规范,通过某种方式相连,以共同 ...
- 手把手教你学node.js之一个简单的express应用
一个简单的express应用 目标 建立一个 lesson1 项目,在其中编写代码.当在浏览器中访问 http://localhost:3000/ 时,输出 Hello World. 挑战 访问 ht ...
随机推荐
- HTML表格中各元素之间属性之间的相互影响
开发了一个动态表格制作程序,用的是谷歌浏览器.发现几个现象,记录如下: 1.按照技术文档的说法,正规的表格样式如下: <table> <caption>标题</capti ...
- WebGL简易教程(十四):阴影
目录 1. 概述 2. 示例 2.1. 着色器部分 2.1.1. 帧缓存着色器 2.1.2. 颜色缓存着色器 2.2. 绘制部分 2.2.1. 整体结构 2.2.2. 具体改动 3. 结果 4. 参考 ...
- PAT(甲级)2018年冬季考试
1152 Google Recruitment 思路:判断素数 #include<bits/stdc++.h> using namespace std; const int maxn = ...
- Linux基础命令小技巧
总结 CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise L ...
- 大型情感剧集Selenium:8_selenium网页截图的四种方法
有时候,有时候,你会相信一切有尽头-当你的代码走到了尽头,那么保留最后一刻的状态尤为重要,此时你该如何操作?记录日志-没有将浏览器当前的状态进行截图来的直观! 那么,selenium截取截屏,有哪些方 ...
- 新一代数据安全的制胜法宝-UBA
[摘要]在入侵防御领域,运用数据分析的方法保护数据的技术其实没有什么新的东西,比如防火墙-分析数据包的内容以及其他的元数据,如IP地址,从增长的数据条目中检测和阻断攻击者:防病毒软件不断的扫描文件系统 ...
- 小白探究UE4网络系列(一)、UE4网络基础类分析
转载请标明出处:http://www.cnblogs.com/zblade/ 一.概要 捣鼓UE4也有两个多月了,从这儿开始,逐步探究UE4中经典的值复制,RPC两种同步方式.想要弄到其复制和调用的原 ...
- luogu P1412 经营与开发 |dp
题目描述 4X概念体系,是指在PC战略游戏中一种相当普及和成熟的系统概念,得名自4个同样以"EX"为开头的英语单词. eXplore(探索) eXpand(拓张与发展) eXplo ...
- luogu P2343 宝石管理系统 |分块+堆
题目描述 GY君购买了一批宝石放进了仓库.有一天GY君心血来潮,想要清点他的宝石,于是把m个宝石都取出来放进了宝石管理系统.每个宝石i都有一个珍贵值vi,他希望你能编写程序查找到从大到小第n珍贵的宝石 ...
- Java修炼——基于TCP协议的Socket编程_双向通信_实现模拟用户登录
首先我们需要客户端和服务器端. 服务器端需要:1.创建ServerSocket对象.2.监听客户端的请求数据.3.获取输入流(对象流)即用户在客户端所发过来的信息. ...