Navigation
阅读进度0%
Go 入门踩坑记录:构建、MySQL、Swagger、Redis 与 Nginx
December 19, 2024 (1y ago)
Go
Docker
Nginx
MySQL
Redis
这里是记录的是 ,按照煎鱼大神的go入门文档中来的坑
build之后的程序如何执行
chmod u+x *.shMysql死掉了
如果你遇到mysql连接失败的情况 ,你可以考虑如下的方案
https://blog.csdn.net/whowhowhoisimportant/article/details/111599804
# 我是直接丢了一个重启命令
sudo -s
/etc/init.d/mysql restart
# 再进行连接Swagerr的问题
这个问题主要是 ,项目头的启动项的问题配置好就可以了,但是实际上如果 工具用得好,比如apifox 和其他工具编译生成TsInterface什么的话,这个东西也可以是一个可选项,但是我们现在还是老老实实,安装教程中跑它吧。在golang中使用这个swago 没次都需要重新编译一些swage文件,命令如下
swag initpackage routers
import (
"github.com/BM-laoli/go-gin-example/docs" //项目的东西要换成你自己的 特别是这个swager的问题
"github.com/BM-laoli/go-gin-example/middleware/jwt"
"github.com/BM-laoli/go-gin-example/pkg/setting"
"github.com/BM-laoli/go-gin-example/routers/api"
v1 "github.com/BM-laoli/go-gin-example/routers/api/v1"
"github.com/gin-gonic/gin"
swaggerFiles "github.com/swaggo/files" // swagger embed files
ginSwagger "github.com/swaggo/gin-swagger" // gin-swagger middleware
)关于redis连接的问题
https://github.com/eddycjy/go-gin-example/issues/127
注意⚠️很多同学没有去main中init哈!这是一个致命的问题
2022/03/04 22:47:50 [Recovery] 2022/03/04 - 22:47:50 panic recovered:
GET /api/v1/articles?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QiLCJwYXNzd29yZCI6InRlc3QxMjM0NTYiLCJleHAiOjE2NDY0MTM0MzEsImlzcyI6Imdpbi1ibG9nIn0.TxR-nZZKrNaCRNbOZnwt3Y4Md8fdxU8fuVR-tKG5tks HTTP/1.1
Host: 127.0.0.1:8000
Accept: */*
Accept-Encoding: gzip, deflate, br
Cache-Control: no-cache
Connection: keep-alive
Postman-Token: 294bfd2e-8b89-4c3c-9bc5-a206fdb224b2
User-Agent: PostmanRuntime/7.29.0
runtime error: invalid memory address or nil pointer dereference关于 煎鱼大神的 图片绘制
个人实际上不是非常的建议由后端处理,这种场景,应该更多的交给客户端处理,当然如果极其特殊的情况可以交给后端处理
关于Nginx问题
关于Nginx我们不用过多的讲很多,现在我们仅仅需要的是把Nginx如何和docker结合搞清楚,
实际上煎鱼大神在文章中,在非docker环境下就已经做的很好了,一张图就能理解清楚所有的

现在我们来讨论一下docker中如何跑这个nginx ,首先我们需要分两类问题去探讨
- liunx内run多个 服务,使用一个nginx 代理物理机内的多个服务,对外暴露一个端口服务,
- 部署多个dockercontainer,外部使用一个ngxin服务去管理和访问他们
它们的示意图如下


但是说一下最终的结论,到底何种模式最佳呢?
推荐看看这篇文章 https://www.jianshu.com/p/2057576bfc5a
- 在这里我们并没有选择使用 某种方式,这一节我们直接跳过,如果后续有需要的话,我更加欣赏 把Nginx 映射到容器内部来进行管理,也就是和docker结合的对二中架构模式,当然如果你的业务足够的简单,使用博客中描述的架构模式也是可以的
请入门 Makefile
对于这个东西 Makefile 它实际上是类似于,编排工具🔧,是一个基于Unix操作系统的编排工具,这里我们也不深入的了解了。