云服务器部署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

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20164 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
爱吃苹果的日记本4 天前
离散数学第六课
学习·离散数学
ttwuai4 天前
Go开源后台管理系统推荐:怎么按技术栈和边界比较4个官方仓库?
golang·gin