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

devtools/2024/12/27 21:17:11/

## 一. 服务器环境配置

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

### 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 配置无误,项目能够正常运行并通过接口测试。


http://www.ppmy.cn/devtools/145923.html

相关文章

管理面板Ajenti的在Windows10下Ubuntu24.04/Ubuntu22.04里的配置管理

Ajenti是一款基于Web的开源系统管理控制面板&#xff0c;可用于通过Web浏览器&#xff0c;管理远程系统管理性任务&#xff0c;这一点与 Webmin模块 非常相似。 Ajenti是一款功能非常强大的轻型工具&#xff0c;它提供了快速的、反应灵敏的Web界面&#xff0c;可用于管理小型服…

【AI系统】LLVM 前端和优化层

LLVM 前端和优化层 在上一篇文章讲到了 LLVM 的 IR 贯穿了 LLVM 编译器的全生命周期&#xff0c;里面的每一个箭头都是一个 IR 的过程&#xff0c;这个就是整体 LLVM 最重要的核心概念。 有了 LVM IR 之后这并不意味着 LLVM 或者编译器的整个 Pipeline 都是使用一个单一的 IR…

SQL进阶技巧:如何计算加油站问题? | LeetCode 134. 加油站

目录 0 问题描述 1 数据准备 2 问题分析 计算每个加油站剩余油量(当前油量减去到下一个加油站消耗的油量)

Java爬虫技术:按关键字搜索VIP商品详情

在数字化时代&#xff0c;电子商务平台的竞争日益激烈&#xff0c;而精准的数据采集和分析成为了企业获取竞争优势的关键。对于电商平台而言&#xff0c;能够根据用户输入的关键字快速搜索并展示VIP商品的详细信息&#xff0c;不仅能够提升用户体验&#xff0c;还能够增加销售机…

使用 AI 辅助开发一个开源 IP 信息查询工具:一

本文将分享如何借助当下流行的 AI 工具,一步步完成一个开源项目的开发。 写在前面 在写代码时&#xff0c;总是会遇到一些有趣的机缘巧合。前几天&#xff0c;我在翻看自己之前的开源项目时&#xff0c;又看到了 DDNS 相关的讨论。虽然在 2021 年我写过两篇相对详细的教程&am…

Vue 3 中父子组件的交互与弹框控制:v-model 和事件传递的实践

目录 前言1. Demo2. 基本知识 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 原先的父子组件传递已经说过很多知识&#xff0c;推荐阅读 详细分析Vue3中的props用法&#xff08;父传子&#xff09;详细分析V…

基于Spring Boot的图书管理系统

一、系统背景与意义 随着信息技术的飞速发展&#xff0c;图书馆作为知识资源的宝库&#xff0c;其管理和服务方式的现代化显得尤为重要。传统的图书管理系统往往存在操作复杂、效率低下、功能单一等问题&#xff0c;难以满足现代图书馆的多样化需求。因此&#xff0c;开发一个…

Java 集合使用注意事项总结

Java 集合使用注意事项总结 在 Java 开发中&#xff0c;集合是非常常用的数据结构。正确地使用集合可以提高代码的效率和可读性&#xff0c;同时避免一些常见的错误。本文将结合javaguide的内容&#xff0c;总结 Java 集合使用的注意事项。 一、选择合适的集合类型 Java 提供了…