这里只是为了说明caddy的作用,其实使用Nginx也是没问题
只是想让开发者可以更方便的管理的自己api接口,进行本地的开发调试
这里只是一个简易的架构说明
这里随便拿出一个接口进行说明
可以看到,我们这里使用一个prefix前缀来标记我们的请求都会带有这个前缀
路径:/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个服务都启动时,我们需要配置多个端口来满足对应微服务的请求
此时如果我们想在1个端口去完成对其他的端口聚合(代理)
此时我们就需要一个网关帮我们做转发
下面caddy出场
这里默认安装的是caddy2
即:我们要使用caddy2的语法(和1有一些稍微不同)
brew install caddy
2、配置我们自己的caddyfile
其实玩过Nginx的小伙伴对.config文件一定不陌生
这个caddyfile就是这个自定义的config
但是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文件
前台启动成功示意图
apifox请求
127.0.0.1:8888 auth服务打印日志
caddy文档链接
这里附上一份caddy启动文档
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)