Go语言zero项目服务恢复与迁移文档

## 一. 服务器环境配置

在迁移和配置  项目时,首先需要确保服务器环境正确配置。以下是配置步骤:

### 1. 安装 Go 语言环境

首先,确保 Go 语言环境已经安装,并且配置正确。执行以下步骤:

# 下载 Go 语言安装包

wget https://golang.google.cn/dl/go1.23.3.linux-amd64.tar.gz

# 解压安装包到 /usr/local 目录

tar -C /usr/local -xzf go1.23.3.linux-amd64.tar.gz

# 配置 Go 环境变量

vim /etc/profile.d/go.sh

# 在文件中添加以下内容

export PATH=$PATH:/usr/local/go/bin

source /etc/profile.d/go.sh

# 验证 Go 安装

go version

### 2. 安装 Nginx

确保 Nginx 已经安装并配置。执行以下命令来安装 Nginx:

# 安装 Nginx

sudo yum install -y epel-release

sudo yum install -y nginx

# 启动 Nginx 服务

sudo systemctl start nginx

sudo systemctl enable nginx

# 检查 Nginx 状态

sudo systemctl status nginx

### 3. 安装 Git 并配置阿里云 SSH

确保 Git 已经安装,并配置 SSH 密钥以便拉取代码仓库:

# 安装 Git

sudo yum install -y git

# 配置 SSH 密钥

vim ~/.netrc

# 添加以下内容,替换为你的账户和密码

machine codeup.aliyun.com

login <your_account>

password <your_password>

# 配置 Go 私有仓库访问

export GOPRIVATE=codeup.aliyun.com

# 配置 Go 镜像代理

vim ~/.bashrc

# 添加以下内容以提高依赖下载速度

export GOPROXY=https://mirrors.aliyun.com/goproxy/

export GOPRIVATE=codeup.aliyun.com

# 加载配置

source ~/.bashrc

## 二. 项目依赖配置与调试

在服务器环境配置完成后,接下来需要进行项目代码迁移及依赖配置。确保相关服务和参数正确配置,并进行调试。

### 1. 配置 MySQL

确保 MySQL 数据库已经配置好,并且可以连接到项目中。根据实际项目配置数据库连接信息。

# 配置 MySQL

mysql -u root -p

CREATE DATABASE classin;

# 在项目配置文件中配置 MySQL 数据库连接信息

### 2. 配置 Redis

配置 Redis 服务并确保可以连接。

# 安装 Redis

sudo yum install redis-server

# 启动 Redis 服务

sudo systemctl start redis-server

sudo systemctl enable redis-server

# 配置 Redis 连接信息

### 3. 配置 RabbitMQ

确保 RabbitMQ 服务已正确配置并启动

(如果用的云服务可以忽略安装与启动步骤,直接进行配置)

# 安装 RabbitMQ

sudo yum install -y rabbitmq-server

# 启动 RabbitMQ 服务

sudo systemctl start rabbitmq-server

sudo systemctl enable rabbitmq-server

# 配置 RabbitMQ 连接信息

### 4. GoZero 项目代码迁移与配置

使用 Git 拉取项目代码,并在项目目录中执行相关命令进行依赖管理。

# 拉取项目代码

git pull origin main

# 清理和安装依赖

go mod tidy

# 设置代码仓库和私有依赖

vim ~/.netrc

machine codeup.aliyun.com

login <your_account>

password <your_password>

# 配置 Go 私有仓库

export GOPRIVATE=codeup.aliyun.com

### 5. 依赖服务调试与修改参数

确保依赖服务(MySQL、Redis、RabbitMQ等)能够正确连接,并修改配置文件中的相关参数。

### 6. 域名绑定与 Nginx 配置

在 Nginx 中配置项目的域名绑定和反向代理。以下是 Nginx 配置示例:

添加ssh目录和证书文件

cd  /usr/local/nginx/

mkdir ssh

cd ssh/

rz meishiedu.online.pem

rz meishiedu.online.key

# 编辑 Nginx 配置文件

sudo vim /usr/local/nginx/conf/vhost/class-api.conf

# 配置反向代理

server {

    listen 80;

    server_name api.edu.online;

    return 301 https://$server_name$request_uri;

}

server {

    listen 443 ssl;

    server_name  api.edu.online;

    index index.html;

    ssl_certificate /usr/local/nginx/ssl/du.online.pem;

    ssl_certificate_key /usr/local/nginx/ssl/edu.online.key;

    location / {

        proxy_pass http://127.0.0.1:8899;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}

# 重载 Nginx 配置

sudo systemctl reload nginx

### 7. 项目各个接口测试

确保项目中的各个接口都能够正确响应并进行基本的业务逻辑验证。可以使用工具如 Postman 或 cURL 进行接口测试。

### 8. 项目整体调试

完成基本的配置后,执行整体调试,确保项目能够正常启动并运行。检查日志文件以排查任何可能的问题。

## 三. 整体操作步骤与流程

以下是项目迁移和部署的操作步骤:

### 1. 服务器下载并安装 Go 环境

wget https://golang.google.cn/dl/go1.23.3.linux-amd64.tar.gz

tar -C /usr/local -xzf go1.23.3.linux-amd64.tar.gz

vim /etc/profile.d/go.sh

# 添加环境变量

source /etc/profile.d/go.sh

go version

### 2. 安装 Nginx

# 安装 Nginx

sudo yum install -y epel-release

sudo yum install -y nginx

# 启动并启用 Nginx

sudo systemctl start nginx

sudo systemctl enable nginx

# 检查 Nginx 状态

sudo systemctl status nginx

### 3. 安装 Git

sudo yum install -y git

### 4. 配置 Git 拉取代码

# 拉取项目代码

git pull origin main

# 整理依赖

go mod tidy

# 配置 .netrc 文件,使用私有仓库

vim ~/.netrc

machine codeup.aliyun.com

login <your_account>

password <your_password>

### 5. 配置 Go 私有仓库

# 设置 GOPRIVATE 环境变量

export GOPRIVATE=codeup.aliyun.com

# 配置 Go 代理

export GOPROXY=https://mirrors.aliyun.com/goproxy/

### 6. 获取 SDK 并安装

# 获取某个 SDK

go get codeup.aliyun.com/61b84a04fa282c88e1039838/gosdk/titansdk

### 7. 让运维添加域名解析

联系运维团队,确保 DNS 域名解析已经配置并生效。

### 8. 配置 Nginx

根据项目需求配置 Nginx,使其能够反向代理到项目运行的端口。

### 9. 服务重新部署

项目拉去与更新

git pull

更新项目依赖

go mod tidy

使用以下 Shell 脚本部署项目:

cd /classin/script/

./build_test.sh

### 10. 访问项目并进行业务和接口测试

通过访问配置好的域名,检查项目的各项功能是否正常。使用 Postman 或 cURL 进行接口测试。

### 11. 通知业务方服务上线

确认项目已部署并且所有功能正常后,通知业务方服务已经上线。

## 总结

通过以上步骤,您可以顺利完成 Classin 项目的迁移与服务器环境配置工作。确保各项依赖服务(MySQL、Redis、OSS、RabbitMQ、SDK)配置正确,Nginx 配置无误,项目能够正常运行并通过接口测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945145.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【 Sonarqube】可视化Java项目单元测试覆盖率统计框架搭建

一、项目背景&#xff1a; 一个小公司的朋友反应他们那边Java项目单元测试有&#xff0c;但还没有可视化统计覆盖率数据&#xff0c;没法统计就不能直观的看到单测的覆盖率&#xff0c;Java的覆盖率统计框架还是比较成熟&#xff0c;部署起来也不是很难&#xff0c;下面我们逐…

使用ForceBindIP绑定应用到指定IP

前言 使用ForceBindIP工具&#xff0c;用户可以轻松地将特定应用程序绑定到指定的IP地址&#xff0c;从而确保应用程序的网络连接通过指定的网络适配器进行。通过在命令提示符下运行ForceBindIP并指定IP地址和应用程序的完整路径&#xff0c;用户能够控制应用程序的网络流量&a…

Webpack学习笔记(6)

首先搭建一个基本的webpack环境&#xff1a; 执行npm init -y&#xff0c;创建pack.json&#xff0c;保存安装包的一些信息 执行npm install webpack webpack-cli webpack-dev-server html-webpack-plugin -D&#xff0c;出现node_modules和package-lock.json。 1.source-Ma…

【学生管理系统】element ui级联菜单bug

级联后端 通过父id来进行查询 GetMapping("/{parentId}")public BaseResult findAllByParentId(PathVariable("parentId") String parentId){//1 根据父id查询所有城市QueryWrapper<TbCity> queryWrapper new QueryWrapper<>();queryWrapper.…

关于无线AP信道调整的优化(锐捷)

目录 一、信道优化的基本原则二、2.4G频段信道优化三、5G频段信道优化四、信道优化代码具体示例五、其他优化措施 一、信道优化的基本原则 信道优化旨在减少信道间的干扰&#xff0c;提高网络覆盖范围和信号质量。基本原则包括&#xff1a; 1. 选择合适的信道&#xff1a;根据…

Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程

Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程 作者&#xff1a;Witheart更新时间&#xff1a;20241228 本教程将详细介绍如何将 U 盘格式化为 ext4、FAT32 和 exFAT 文件系统&#xff0c;同时包括如何安装必要工具&#xff08;如 exfat-utils&#x…

【设计与实现】基于Bootstrap的地方旅游管理系统的设计与实现

目录 第一章 绪论 1.1 研究现状 1.2 设计原则 1.3 研究内容 第四章 系统设计 4.1系统结构设计 4.2系统顺序图设计 4.3数据库设计 第五章 系统实现 5.1登录模块的实现 第一章 绪论 1.1 研究现状 时代的发展&#xff0c;我们迎来了数字化信息时代&#xff0c;它正在渐…

【MySQL高级】索引

MySQL高级课程简介 序号010203041基本硬件知识体系结构应用优化MySQL 常用工具2索引存储引擎查询缓存优化MySQL 日志3视图优化SQL步骤内存管理及优化MySQL 主从复制4存储过程和函数索引使用MySQL锁问题5触发器SQL优化常用SQL技巧 1. 基本硬件知识 1.1 计算机工作原理 1.中央处…

【Redis】:初识Redis

1.1 盛赞 Redis Redis 是⼀种基于键值对&#xff08;key-value&#xff09;的 NoSQL 数据库&#xff0c;与很多键值对数据库不同的是&#xff0c;Redis 中的值可以是由 string&#xff08;字符串&#xff09;、hash&#xff08;哈希&#xff09;、list&#xff08;列表&#xf…

在Linux centos7环境下部署wblogic使用weblogic部署war包项目

准备工作 1、一台配置好centos的虚拟机、 2、关闭并禁用防火墙 3、配置好yum源下载&#xff08;zip、vim、unzip&#xff09;等工具 4、jdk安装包 一&#xff0c;jdk的安装 将jdk安装包上传到opt目录里 [rootlocalhost ~]# cd /opt 解压jdk安装包 [rootlocalhost opt]…

Xdebug

1、开启xdebug扩展 2、修改一下php.ini文件 xdebug.remote_enable 1 xdebug.remote_autostart 13、vscode安装插件php debug 4、生成launch.json文件&#xff0c;好像啥都不用改 5、vscode没有配置php路径的&#xff0c;需要去配置&#xff1a; 6、发起请求 8、代码断…

QWidget应用封装为qt插件,供其他qt应用调用

在之前的文章中,有介绍通过QProcess的方式启动QWidget应用,然后将其窗口嵌入到其他的qt应用中,作为子窗口使用.这篇文章主要介绍qt插件的方式将QWidget应用的窗口封装为插件,然后作为其他Qt应用中的子窗口使用. 插件优点: 与主程序为同一个进程,免去了进程间繁琐的通信方式,…

人工智能与云计算的结合:如何释放数据的无限潜力?

引言&#xff1a;数据时代的契机 在当今数字化社会&#xff0c;数据已成为推动经济与技术发展的核心资源&#xff0c;被誉为“21世纪的石油”。从个人消费行为到企业运营决策&#xff0c;再到城市管理与国家治理&#xff0c;每个环节都在生成和积累海量数据。然而&#xff0c;数…

使用seata实现分布式事务管理

配置 版本说明&#xff1a;springCloud Alibaba组件版本关系 我用的是spring cloud Alibaba 2.2.1.RELEASE 、springboot 2.2.1.RELEASE、nacos 2.0.1、seata1.2.0,jdk1.8 seata 主要用于在分布式系统中对数据库进行事务回滚&#xff0c;保证全局事务的一致性。 seata的使用…

前端node.js

一.什么是node.js 官网解释:Node.js 是一个开源的、跨平台的 JavaScript 运行时环境。 二.初步使用node.js 需要区分开的是node.js和javascript互通的只有console和定时器两个API. 三.Buffer Buffer 是一个类似于数组的对象&#xff0c;用于表示固定长度的字节序列。 Buffer…

LoRA微调系列笔记

系列文章目录 第一章&#xff1a;LoRA微调系列笔记 第二章&#xff1a;Llama系列关键知识总结 第三章&#xff1a;LLaVA模型讲解与总结 文章目录 系列文章目录LoRA&#xff1a;Low-Rank Adaptation of Large Language Models目的&#xff1a;依据&#xff1a;优势&#xff1a;…

khadas edge2安装ubuntu22.04与ubuntu20.04 docker镜像

khadas edge2安装ubuntu22.04与ubuntu20.04 docker镜像 一、资源准备1.1 镜像文件1.2 刷机工具1.3 ubuntu20.04 docker镜像&#xff08;具备demon无人机所需各种驱动&#xff09; 二、开始刷机&#xff08;安装ubuntu22.04系统&#xff09;2.1 进入刷机状态2.2 刷机 三、docker…

PhPMyadmin-cms漏洞复现

一.通过日志文件拿Shell 打开靶场连接数据库 来到sql中输入 show global variables like %general%; set global general_logon; //⽇志保存状态开启&#xff1b; set global general_log_file D:/phpstudy/phpstudy_pro/WWW/123.php //修改日志保存位置 show global varia…

FPGA流水线考虑因素

流水线考虑因素 另一种提升性能的方法是对拥有多个逻辑级数的长数据路径进行重新组织&#xff0c;并将其分配在多个时钟周期上。这种方法 以时延和流水线开销逻辑管理为代价&#xff0c;来达到加快时钟周期和提高数据吞吐量的目的。 由于 FPGA 器件带有大量的寄存器&#x…

语言模型的革命:大型概念模型(LCM)的崛起

在人工智能领域&#xff0c;Meta最近推出的一项重大突破正在引起研究人员和开发者的广泛关注&#xff1a;大型概念模型&#xff08;Large Concept Models&#xff0c;简称LCM&#xff09;。这一创新彻底改变了我们对语言模型的理解&#xff0c;并为未来AI技术的进展指明了新的方…