gondola 是 Go 制作的反向代理,只需用 YAML 编写配置文件即可轻松使用。
可以在awesome-go找到。
它仅使用Go的标准库实现,并具有以下功能
我经营一个名为 bmf-tech.com 的博客,是我用 Go 自己构建的。
博客曾经有一个使用Nginx构建的反向代理。
我的博客系统的架构并不复杂,我想一个可以通过更简单的配置进行操作的反向代理就足够了。
因此我决定构建自己的反向代理,它可以使用更简单的配置文件进行配置,而不是像 Nginx 那样具有灵活语法的配置文件。
我实际上在自己的博客系统中使用了gondola,到目前为止它很简单且易于运行。
您可以通过使用 go get 命令或下载二进制文件来使用 gondola。
go get -u github.com/bmf-san/gondola
二进制文件可从版本中获取。
Docker 镜像也可以从 bmf-san/gondola 获得。
在配置文件中配置代理服务器(gondola)和上游服务器后,只需启动gondola即可。
# example config.yaml proxy: (default) port: 443 read_header_timeout: 2000 shutdown_timeout: 3000 tls_cert_path: certificates/cert.pem tls_key_path: certificates/key.pem static_files: /public/static_files - path: /public/ dir: . /public upstreams: host_name: backend1.local - host_name: backend1.local target: http://backend1:8081 # backend1 is the name of the container - host_name: backend2.local target: http://backend2:8082 # backend2 is the name of the container log_level: 0 # Debug:-4 Info:0 Warn:4 Error:8
按如下方式启动缆车:
gondola -config config.yaml
我们还有_示例,如果您愿意,您可以立即尝试。
有关 Go 中的反向代理实现,请参阅在 Golang 中实现负载均衡器。
本文介绍了如何实现负载均衡器,但由于它是基于反向代理实现的,因此可能会有所帮助。
gondola 欢迎问题和 Pull 请求。
当然Star也欢迎。
我们仍然缺少 gondola 的一些功能和实现,因此我们希望继续改进它。
请随时提供反馈。
以上是gondola:为什么不使用轻量级且简单的基于 YAML 的反向代理?的详细内容。更多信息请关注PHP中文网其他相关文章!