您现在的位置是:首页 >技术杂谈 >【caddy】 caddy反向代理api服务 聚合go-zero微服务 放过nginx让caddy来快速实现吧网站首页技术杂谈
【caddy】 caddy反向代理api服务 聚合go-zero微服务 放过nginx让caddy来快速实现吧
简介【caddy】 caddy反向代理api服务 聚合go-zero微服务 放过nginx让caddy来快速实现吧
帮助go-zero开发者聚合api
相关视频
B站视频链接如下:https://www.bilibili.com/video/BV1mr4y147p3
欢迎朋友素质三连
一、go-zero 微服务整体架构
这里只是为了说明caddy的作用,其实使用Nginx也是没问题
只是想让开发者可以更方便的管理的自己api接口,进行本地的开发调试
1、微服务的基本架构
这里只是一个简易的架构说明
2、go-zero 微服务的 api
这里随便拿出一个接口进行说明
可以看到,我们这里使用一个prefix前缀来标记我们的请求都会带有这个前缀
authrpc.api 文件
路径:/Users/ctra_wl/Desktop/simbaM/simbam-go-auth/api/auth.api
@server(
jwt: Auth
group: root
prefix: simbam-auth
)
service AuthApi {
@handler resetPasswordWithLoginReg // 登录状态下-重置密码
get /auth/user/reset (UserResetReq) returns (CommonResp)
}
routes.go 文件
路径:/Users/ctra_wl/Desktop/simbaM/simbam-go-auth/api/internal/handler/routes.go
server.AddRoutes(
[]rest.Route{
{
Method: http.MethodGet,
Path: "/auth/user/reset",
Handler: root.ResetPasswordWithLoginRegHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.Auth.AccessSecret),
rest.WithPrefix("/simbam-auth"),
)
二、本地开发的痛点
1、本地多个端口开启的服务
下面是2个yaml文件,可以看到每一个api服务的端口必须都不相同
(当然这里的端口名你可以随意起,因为到线上的测试和生产环境会被k8 svc接管)
2、apifox、postman
当这2个服务都启动时,我们需要配置多个端口来满足对应微服务的请求
此时如果我们想在1个端口去完成对其他的端口聚合(代理)
此时我们就需要一个网关帮我们做转发
下面caddy出场
三、caddy
1、mac下caddy安装
这里默认安装的是caddy2
即:我们要使用caddy2的语法(和1有一些稍微不同)
brew install caddy
2、配置我们自己的caddyfile
其实玩过Nginx的小伙伴对.config文件一定不陌生
这个caddyfile就是这个自定义的config
但是caddyfile 非常轻量
1)创建我们的caddyfile
# 找到我们合适的磁盘路径
vim caddyfile
2)配置caddy反向代理
解释一下,下面的代码含义
:1234 {
reverse_proxy /simbam-auth/* 127.0.0.1:8888
reverse_proxy /simbam-datasource/* 127.0.0.1:1068
}
- :1234为我们开启 localhost:1234 这个web服务
- reverse_proxy反向代理的关键字
- 因为我们之前所有的微服务都是按模块化加上了前缀,这里可见优势的体现
- 当请求中包含 /simbam-auth/* (*为任意值)时,转发请求到 8888 端口
- 当请求中包含 /simbam-datasource/* (*为任意值)时,转发请求到 1068 端口
3)启动caddy
前台启动方式
caddy run --config ~/Desktop/caddyfile --adapter caddyfile
后台启动方式
caddy start --config ~/Desktop/caddyfile --adapter caddyfile
caddyfile则是我们上面自己创建的caddyfile文件
前台启动成功示意图
4)caddy最佳实践
apifox请求
127.0.0.1:8888 auth服务打印日志
5) caddy 官方文档
这里附上一份caddy启动文档
四、ubuntu服务器安装caddy
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。