caddy & grpc(3) 为 caddy 添加一个 反向代理插件
caddy-grpc 为 caddy 添加一个 反向代理插件
项目地址:https://github.com/yhyddr/caddy-grpc
Improbable-eng/grpc-web/go/grpcwebproxy目的相同,但作为 Caddy 中间件插件而不是独立的Go应用程序。
而这个项目的作用又是什么呢?
这是一个小型反向代理,可以使用gRPC-Web协议支持现有的gRPC服务器并公开其功能,允许从浏览器中使用gRPC服务。
特征:
- 结构化记录(就是 log 啦)代理请求到stdout(标准输出)
- 可调试的 HTTP 端口(默认端口
8080
)- Prometheus监视代理请求(
/metrics
在调试端点上)- Request(
/debug/requests
)和连接跟踪端点(/debug/events
)- TLS 1.2服务(默认端口
8443
):
- 具有启用客户端证书验证的选项
- 安全(纯文本)和TLS gRPC后端连接:
- 使用可自定义的CA证书进行连接
其实意思就是,把这一个反向代理做到了 caddy 服务器的中间件中。
backend_is_insecure
默认情况下,代理将使用TLS连接到后端,但是如果后端以明文形式提供服务,则需要添加此选项
如何为 caddy 添加插件扩展
首先看 安装的 setup.go 文件
Vue.js
GopherJS
https://github.com/caddyserver/caddy
如何写中间件:https://github.com/caddyserver/caddy/wiki/Writing-a-Plugin:-HTTP-Middleware
caddy-grpc插件:https://github.com/pieterlouw/caddy-grpc