云服务器部署Gin+gorm 项目 demo

更多个人笔记见:

注意点击"继续",而不是"发现新项目"
github个人笔记仓库 https://github.com/ZHLOVEYY/IT_note
gitee 个人笔记仓库 https://gitee.com/harryhack/it_note

个人学习,学习过程中还会不断补充~ (后续会更新在github上)

gitee项目地址(失效了去我的笔记仓库具体看~):https://gitee.com/harryhack/it_note/tree/main/后端笔记/服务器部署相关

腾讯云文档

本地测试

docker 中的 exec 检查mysql -u user -p ,用于检查本地的是否 ok (数据库情况)

注意终端中操作需要 docker exec it 加在指令前面
docker exec -it <容器名称或ID> /bin/bash 结合 sql 自己查

本地的docker-compose up --build 可以运行起来说明就是完全 ok 的

安装docker-compose
bash 复制代码
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose  # 增加权限查看版本
docker --version   # centos9 腾讯云上自带的
docker-compose --version
配置密钥
  • 在控制台设置密钥,会自动下载文件到本地
  • cp ~/Downloads/1234.pem ~/.ssh/ 复制密钥到专门的 ssh 文件夹(部分人可能没创建过)

https://cloud.tencent.com/document/product/1207/44643 ssh 连接

  • chmod 600 ~/.ssh/1234.pem 记得添加权限,不然会认定为不安全
传输和解压

tar -czvf gin-mysql-demo.tar.gz . 本地进行文件压缩

  • scp 上传似乎有问题,scp gin-mysql-demo.tar.gz root@<服务器公网IP>:/root/

    好像没有开启,不过腾讯云的界面中,直接上传是可以的,更加方便 (一个电脑的图标)

  • root 下有一个mydemo_ginsql.tar.gz 压缩文件,该怎么新建一个文件夹然后解压进去:

    (千万别直接解压不然都跑出来了)

bash 复制代码
mkdir -p mydemo_ginsql
ls -al  #查看
tar -zxvf ./mydemo_ginsql.tar.gz -C ./mydemo_ginsql
安装 GO

为了 docker 中 go mod 下载更快 -> 设置 goproxy->需要安装 go

  • 为 dnf 配置源
bash 复制代码
sudo sed -i 's|mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tencent.com/centos|g' /etc/yum.repos.d/CentOS-*
sudo dnf clean all
sudo dnf makecache
  • 下载 golang
bash 复制代码
sudo dnf install golang
  • 设置相关环境
bash 复制代码
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc # 添加环境变量
source ~/.bashrc  
go env -w GOPROXY=https://proxy.golang.com.cn,direct # 添加代理
  • 发现原来需要在 docker 中配置相关的 goproxy! 因为是在容器中进行的,而不是本地,本地自己配置过终端代理所以 docker 中也可以很快
    • 这里可以看我的代码中
启动服务

dockerfile 中添加 env!!

text 复制代码
# 设置 GOPROXY 环境变量!!!
ARG GOPROXY
ENV GOPROXY=${GOPROXY:-https://mirrors.tencent.com/go/,direct}
ENV GO111MODULE=on

看看代码,我是改好了的

接着 docker-compose up --build

连接测试
bash 复制代码
curl -v http://localhost:8080/users # 测试连接
sudo iptables -L -n | grep 8080 | grep 8080 # 测试防火墙
  • 注意,腾讯云的服务器需要你自己设置端口开放,自己添加 8080 端口设置规则!!!! (除了本地的防火墙系统中的关闭以外)

  • 接着就可以愉快的测试了!

    http://你的公网ip:8080/users GET和 POST 轮流测试

  • 测试完记得及时关闭端口!保证安全性

补充(不需要看):
  • 更新软件包

    sudo dnf update -y
    sudo dnf upgrade -y

    sudo dnf install -y vim wget curl git zip unzip

  • 防火墙和端口相关

    安装防火墙

    sudo dnf install -y firewalld

    启动防火墙并设置开机自启

    sudo systemctl start firewalld
    sudo systemctl enable firewalld

    开放常用端口(根据需要调整)

    sudo firewall-cmd --permanent --add-port=22/tcp # SSH
    sudo firewall-cmd --permanent --add-port=80/tcp # HTTP
    sudo firewall-cmd --permanent --add-port=443/tcp # HTTPS
    sudo firewall-cmd --reload

相关推荐
梦想的颜色3 小时前
【Docker原理】Docker 容器一文打尽:生命周期、环境管控、迁移备份、日志进程排查、垃圾清理
运维·docker·容器·容器生命周期·容器日志排查·容器迁移备份·容器进程管理
欢呼的太阳4 小时前
数据库设计Step by Step (10)——范式化
服务器·数据库·oracle
千寻xun4 小时前
一、理论篇-NVME协议学习笔记
笔记·学习·fpga开发·nvme ssd·nvme协议
GoGeekBaird4 小时前
我开源了 BeeWeave,给 AI Agent 搭一个越用越懂你的知识创作台
后端·github
researcher-Jiang4 小时前
高性能计算之OpenMP——超算习堂学习1
android·java·学习
夜雪一千4 小时前
Python enumerate() 函数完整详解:遍历同时获取索引,告别手动计数
服务器·windows·python
donoot5 小时前
Linux系统下图书馆级电子书全自动标准化分类整理完整实施方案
大数据·linux·运维·电子书管理
ITKEY_5 小时前
macOS brew 安装的nginx 文件在哪里?
运维·nginx·macos
Elastic 中国社区官方博客6 小时前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎
大E帝国子民17 小时前
MacOS 安装Seismic Unix
服务器·macos·unix