云服务器

⼀. 购买云服务器

1.1. 注册阿⾥云的账号

云服务器我们可以有很多的选择:阿⾥云、腾讯云、华为云。

  • ⽬前在公司使⽤⽐较多的是阿⾥云;

  • 所以这里讲解目前使⽤更加⼴泛的阿⾥云来讲解: 我们需要注册阿⾥云账号

  • https://aliyun.com/

  • 注册即可,⾮常简单

1.2. 购买云服务器

购买云服务器其实是购买⼀个实例。

1.来到控制台:
在这里插入图片描述

2.创建实例,选择类型和配置
在这里插入图片描述
在这里插入图片描述

3.配置⽹络安全组

在这里插入图片描述

4.创建实例
在这里插入图片描述

二、配置云服务器

2.1. 连接云服务器

通常情况下,我们会通过ssh连接云服务器:

  • Windows电脑上我推荐直接使⽤git bash ssh⼯具;

  • Mac OS电脑上我们可以直接通过终端来使⽤ssh⼯具;

在这里插入图片描述

  • 知识点补充:如果在计算机中想要更改主机名
  • 修改之后需要重启服务器
hostnamectl --static set-hostname coderwhy

2.2. 安装Node.js

我们安装软件使⽤⼯具:dnf

  • DNF,全称Dandified(时髦的、华丽的)

  • Yum; 是Yum的下⼀个版本,也被称之为Yum的替代品;

  • 如果是centos7的版本,我记得是没有⾃带dnf的,需要通过yum进⾏安装(这个⾃⾏安装⼀下); 刚才在选择云服务器时,我选择的是centos8,所以是⾃带dnf的;

检查dnf是否可⽤:

dnf --help

如果我们希望安装⼀个软件包,可以进⾏如下的操作:

# 搜索软件包
dnf search nodejs
# 查看软件包信息: nodejs的版本是10.21.0
dnf info nodejs
# 安装nodejs
dnf install nodejs

我们会发现版本其实是10.21.0:

  • 我们其实希望使⽤更⾼的版本,⽐如最新的LTS或者Current版本;

  • 这个时候我们可以使⽤之前讲过的⼀个⼯具:n;

# 安装n
npm install n -g
# 通过n安装最新的lts和current
n install lts
n install latest
# 通过n切换版本
n

如果发现切换之后终端没有反应,可以进⾏重启:

  • ⽅式⼀:重新通过ssh建⽴连接:

  • ⽅式⼆:重启sshservice sshd restart

2.3. 安装MySQL

2.3.1. 安装MySQL

我们依然使⽤dnf来安装MySQL:

# 查找MySQL
dnf search mysql-server
# 查看MySQL,这⾥的版本是8.0.21
dnf info mysql-server
# 安装MySQL,这⾥加-y的意思是依赖的内容也安装
dnf install mysql-server -y

启动mysql-server:

# 开启MySQL后台服务
systemctl start mysqld
# 查看MySQL服务: active (running)表示启动成功
systemctl status mysql
# 随着系统⼀起启动
systemctl enable mysqld

2.3.2. 配置MySQL

我们之前在Mac或者Windows上安装MySQL时会有⼀些配置:

  • ⽐如账号密码;

  • 在centos中通过dnf安装之后,我们如何配置账号密码呢?

配置MySQL账号和密码:

mysql_secure_installation
# 接下来有⼀些选项,⽐如密码强度等等⼀些
# MySQL8开始通常设置密码强度较强,选择2
# 其他的选项可以⾃⾏选择

现在,我们就可以直接在服务器中操作MySQL了:

在这里插入图片描述

但是如果我们希望在⾃⼰的电脑上直接连接MySQL呢?

  • 也就是和MySQL建⽴远程连接;

  • ⽐如直接Navicat⼯具中连接MySQL;

这个时候必须要配置root可以远程连接:

# 使⽤mysql数据库
use mysql;
# 查看user表中,连接权限,默认看到root是localhost
select host, user from user;
# 修改权限
update user set host = '%' where user = 'root';
  • 但是呢,阿⾥云默认有在安全组中禁⽌掉端的连接的: 所以我们需要配置的安全组

在这里插入图片描述

2.3.3. 数据库迁移

我们需要将之前项⽬中(本地)MySQL的数据库迁移到服务器中的MySQL数据库中。

第⼀步:在服务器MySQL中创建coderhub的数据库:

  • 可以通过命令,也可以通过Navicat直接创建

第⼆步:在Navicat⼯具中本地MySQL直接导出数据库

在这里插入图片描述

第三步:在Navicat⼯具中服务器MySQL中执⾏MySQL

在这里插入图片描述

三、部署项⽬

3.1. ⼿动部署

3.1.1. 代码托管到Git仓库

在GitHub中创建仓库,并且将当前代码放到GitHub中 添加.gitignore⽂件时,忽略⼀些⽂件:

  • 忽略uploads
  • 忽略.env

这⾥不再给出详细的步骤,就是把代码托管到GitHub上。

3.1.2. 代码clone到服务器

服务器我们使⽤Git来clone代码:

  • centos8服务器中默认是没有安装Git的;
  • 我们可以通过dnf来安装;
dnf search git;
dnf info git;
# 当然你也可以直接安装(上⾯两个只是让⼤家看⼀下Git的详情)
dnf install git;

我们可以在根⽬录下创建⼀个⾃⼰的⽂件夹,⽐如why

cd /
mkdir why
cd why/

clone项⽬到why中:

git clone https://github.com/coderwhy/coderhub.git

3.1.3. VSCode中打开代码

如果我们希望在本地的VSCode中可以直接编辑远程的代码,可以使⽤⼀个VSCode的插件:remote-ssh

在这里插入图片描述

连接远程服务器:

在这里插入图片描述

查看远程的项⽬代码:

在这里插入图片描述

安装项⽬的依赖:

npm install

配置.env⽂件

APP_HOST=http://8.134.60.235
APP_PORT=8001
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_DATABASE=coderhub
MYSQL_USER=root
MYSQL_PASSWORD=Coderwhy888.

注意:加⼊8001端⼝到安全组中

在这里插入图片描述

测试请求的结果:

在这里插入图片描述

3.1.4. pm2启动node程序

  • 刚才我们是通过终端启动的node程序,那么如果终端被关闭掉了呢? 那么这个时候相当于启动的Node进程会被关闭掉;

  • 我们将⽆法继续访问服务器;

在真实的部署过程中,我们会使⽤⼀个⼯具pm2来管理Node的进程:

  • PM2是⼀个Node的进程管理器;

  • 我们可以使⽤它来管理Node的后台进程;

  • 这样在关闭终端时,Node进程会继续执⾏,那么服务器就可以继续为前端提供服务了;

安装pm2:

npm install pm2 -g

pm2常⽤的命令:

# 命名进程
pm2 start app.js --name my-api
# 显示所有进程状态
pm2 list
# 停⽌指定的进程
pm2 stop 0
# 停⽌所有进程
pm2 stop all
# 重启所有进程
pm2 restart all
# 重启指定的进程
pm2 restart 0
# 杀死指定的进程
pm2 delete 0
# 杀死全部进程
pm2 delete all
#后台运⾏pm2,启动4个app.js,实现负载均衡
pm2 start app.js -i 4

3.2. jenkins⾃动化部署

3.2.1. 安装Java环境

  • Jenkins本身是依赖Java的,所以我们需要先安装Java环境: 这⾥我安装了Java1.8的环境
dnf search java1.8
dnf install java-1.8.0-openjdk.x86_64

3.2.2. 安装Jenkins

因为Jenkins本身是没有在dnf的软件仓库包中的,所以我们需要连接Jenkins仓库

wget –O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhatstable/jenkins.repo
# 导⼊GPG密钥以确保您的软件合法
rpm ––import https://pkg.jenkins.io/redhat/jenkins.io.key
  • 编辑⼀下⽂件/etc/yum.repos.d/jenkins.repo 可以通过vim编辑
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1

安装Jenkins

dnf install jenkins

启动Jenkins的服务:

systemctl start jenkins
systemctl status jenkins
systemctl enable jenkins

Jenkins默认使⽤8080端⼝提供服务,所以需要加⼊到安全组中:

在这里插入图片描述

3.2.3. Jenkins配置

打开浏览器,输⼊:http://8.134.60.235:8080/

  • 注意:你输⼊⾃⼰的IP地址

获取输⼊管理员密码: 在下⾯的地址中

  • 在下⾯的地址中
  • cat /var/lib/jenkins/secrets/initialAdminPassword

在这里插入图片描述

可以安装推荐的插件:

在这里插入图片描述

3.2.4. Jenkins任务

新建任务:

在这里插入图片描述
在这里插入图片描述

配置构建的保留策略:

在这里插入图片描述

源码管理:

在这里插入图片描述

构建触发器:

在这里插入图片描述

构建环境:

  • 注意:我们需要搭建Node的环境第⼀步:配置Node的环境;

  • 第⼆步:安装Node的插件;

在这里插入图片描述

第⼀步:配置Node的环境

在这里插入图片描述

第⼆步:安装Node的插件

  • 这⾥因为我已经安装过了,所以没有搜索到;

在这里插入图片描述

构建执⾏的任务:

  • 查看Node的版本等是否有问题;

  • 执⾏ npm install 安装项⽬的依赖;

  • 移除/mnt/coderhub 中的⽂件,除了

ls
node -v
npm -v
npm install
cd /mnt/coderhub/
ls
shopt -s extglob
rm -rf /mnt/coderhub/* !(".env"|"."|"..")

#注意下面不是注释,是命令
cd /var/lib/jenkins/workspace/coderhub
ls
pwd
cp -rf * /mnt/coderhub/

在这里插入图片描述

ecosystem.config.js⽂件:

module.exports = {
	apps: [{
			name: "coderhub",
			script: "./src/main.js",
			watch: true
		}]
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值