koa项目部署云服务器(部署本地虚拟机中)

2024-02-23 17:36

本文主要是介绍koa项目部署云服务器(部署本地虚拟机中),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、服务器安装Node、MySQL
    • 1.1. 安装Node.js
    • 1.2. 安装MySQL
    • 1.3.配置MySQL
    • 1.4. 数据库迁移
  • 二. 部署Node项目
    • 2.1. 代码托管到Git仓库(选做)
    • 2.2. 代码clone到服务器(选做)
    • 2.3. VSCode中打开代码(推荐)
    • 2.3. 使用Xftp工具进行拷贝(选做)
    • 2.4. pm2启动node程序


一、服务器安装Node、MySQL

1.1. 安装Node.js

首先了解服务器,我使用Xshell连接服务器(其他链接工具都行,如vscode的SSH链接插件)
我们安装软件使用工具:dnf

  • DNF,全称Dandified(时髦的、华丽的) Yum
  • 是Yum的下一个版本,也被称之为Yum的替代品;
  • 如果是centos7的版本,我记得是没有自带dnf的,需要通过yum进行安装(这个自行安装一下);
  • 刚才在选择云服务器时,我选择的是centos8,所以是自带dnf的;
    使用dnf命令进行安装node
    检查dnf是否可用:
dnf --help

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

# 搜索软件包
dnf search nodejs# 查看软件包信息: 
dnf info nodejs# 安装nodejs
dnf install nodejs

如果发现不是你希望使用的版本:

  • 使用更高的版本,比如最新的LTS或者Current版本;
  • 这个时候我们可以使用之前讲过的一个工具:n;n使用文档
  • nvm也能行是实现相同效果
# 安装n
npm install n -g# 通过n安装最新的lts和current
n install lts
n install latest# 通过n切换版本
n

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

  • 方式一:重新通过ssh建立连接;
  • 方式二:重启ssh service sshd restart

1.2. 安装MySQL

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

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

启动mysql-server:

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

1.3.配置MySQL

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

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

配置MySQL账号和密码:

mysql_secure_installation# 接下来有一些选项,比如密码强度等等一些
# MySQL8开始通常设置密码强度较强,选择2
# 其他的选项可以自行选择

在这里插入图片描述

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

# 使用root用户链接mysql
mysql -u root -p

在这里插入图片描述

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

  • 也就是和MySQL建立远程连接;
  • 比如直接Navicat工具中连接MySQL;

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

# 使用mysql数据库
use mysql;
# 查看user表中,连接权限,默认看到root是localhost
select host, user from user;
# 修改权限
update user set host = '%' where user = 'root';# 配置生效
FLUSH PRIVILEGES;

如果你为root用户为localhost,你电脑的Navicat想访问远程服务器的MySQL是连接不是的,只有在服务器本机上连接才行
在这里插入图片描述

但是呢,阿里云(远程服务器)默认有在安全组中禁止掉3306端的连接的:

  • 所以我们需要配置3306的安全组
  • 在虚拟机中需要将3306接口对外开放才能
  • 可能连接不上,使用reboot命令重启一下服务器
  • 使用ifconfig查看ip

在这里插入图片描述
如果像我一样没有远程服务器,用虚拟机模拟服务器的话,需要使用命令将3306端口开放

	# 开放3306端口firewall-cmd --zone=public --add-port=3306/tcp --permanent

如果你使用的远程服务器的话,需要在安全组中添加3306端口

在这里插入图片描述

Navicat工具连接MySQL数据库成功

在这里插入图片描述

1.4. 数据库迁移

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

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

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

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

在这里插入图片描述

第三步:在Navicat工具中服务器MySQL中执行MySQL

运行sql文件

二. 部署Node项目

2.1. 代码托管到Git仓库(选做)

在GitHub中创建仓库,并且将当前代码放到GitHub中

添加.gitignore文件时,忽略一些文件:

  • 忽略uploads
  • 忽略.env

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

2.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 git项目地址

2.3. VSCode中打开代码(推荐)

如果我们希望在本地的VSCode中可以直接编辑远程的代码,可以使用一个VSCode的插件:remote-ssh
在这里插入图片描述

  • 使用拖拽的方式将项目文件拷贝到自己想存放的位置
  • 该插件的好处就是你能像编写正常项目一样打开服务器的项目,可以可视化操作下编写我们项目
  • 因为之前项目是在本地开发,图片上传地址是localhost等,需要修改为服务器地址ip

2.3. 使用Xftp工具进行拷贝(选做)

在这里插入图片描述

# 下载依赖
npm install

注意:加入8000端口到安全组中

你项目用什么端口,你需要将什么端口加入到安全组中
如果像我一样没有远程服务器,用虚拟机模拟服务器的话,需要使用命令将8000端口开放

# 开放8000端口,然后重启才生效
firewall-cmd --zone=public --add-port=8000/tcp --permanent

虚拟机ip+你对外开放的端口
测试请求的结果:
在这里插入图片描述

2.4. pm2启动node程序

刚才我们是通过终端启动的node程序,那么如果终端被关闭掉了呢?

  • 那么这个时候相当于启动的Node进程会被关闭掉;
  • 我们将无法继续访问服务器;

在真实的部署过程中,我们会使用一个工具pm2来管理Node的进程:

  • PM2是一个Node的进程管理器;
  • 我们可以使用它来管理Node的后台进程;
  • 这样在关闭终端时,Node进程会继续执行,那么服务器就可以继续为前端提供服务了;

安装pm2:

npm install pm2 -g

pm2常用的命令:

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

在这里插入图片描述


该文章有结合coderwhy的koa项目部署,因为自己没有远程服务器使用虚拟机模拟服务器做的部署,

这篇关于koa项目部署云服务器(部署本地虚拟机中)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/739383

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日