Fabio技术手册(1):概述和快速上手

4 篇文章 2 订阅
2 篇文章 0 订阅

概述


Fabio是一个HTTP和TCP反向代理,它使用来自Consul的数据配置自己。

传统的负载均衡器和反向代理需要配置文件进行配置。配置包含代理转发到上游服务的主机名和路径。这个过程可以通过像consul-template这样的工具来自动化,这些工具可以生成配置文件并触发重新加载。

Fabio的工作方式不同,因为它会在Consul存储的数据发生更改时直接更新路由表,而无需重新启动或重新加载。

当您在Consul注册一个服务时,您需要添加的只是一个标记(tag),它会告知上游服务接受的路径,例如urlprefix-/userurlprefix-/order, fabio将完成剩下的工作。

维护人员


Fabio是由Frank Schröder和伟大的社区开发和维护的。

它最初是在荷兰阿姆斯特丹的eBay Classifieds集团开发的。

 

快速上手


  1. 从源代码、二进制、Docker或Homebrew安装

    go get github.com/fabiolb/fabio                     (>= go1.8)
    
    brew install fabio                                  (OSX/macOS stable)
    
    docker pull fabiolb/fabio                           (Docker)
    
    https://github.com/fabiolb/fabio/releases           (pre-built binaries)
  2. 在Consul注册你的服务.

    确保每个实例都使用唯一的ServiceID和没有空格的服务名注册。

  3. 按照这里的描述在Consul注册健康检查。

    确保健康检查是passing的,因为fabio将只监视通过了健康检查的服务。

  4. 路由存储在Consul的Service Tags中,您需要为服务所服务的每个host/path前缀添加一个单独的urlprefix-标记。

    例如,如果您的服务处理/user/product,那么添加两个标签urlprefix-/userurlprefix-/product。你可以注册任意数量的前缀。

    fabio可以转发HTTP、HTTPS和TCP流量。下面是一些配置示例:

    # HTTP/S examples
    # Make sure the prefix for HTTP routes contains at least one slash (/).
    urlprefix-/css                                     # path route
    urlprefix-i.com/static                             # host specific path route
    urlprefix-mysite.com/                              # host specific catch all route
    urlprefix-/foo/bar strip=/foo                      # path stripping (forward '/bar' to upstream)
    urlprefix-/foo/bar proto=https                     # HTTPS upstream
    urlprefix-/foo/bar proto=https tlsskipverify=true  # HTTPS upstream and self-signed cert
    
    # TCP examples
    urlprefix-:3306 proto=tcp                          # route external port 3306

     

  5. 启动fabio不需要配置文件

    $ fabio

    这假设已经有一个Consul代理正在localhost:8500上运行。

    观察日志输出fabio如何选择路由到您的服务。

    注意:通过Docker运行fabio可以看这里

  6. 尝试启动/停止服务,以查看路由表如何立即更新。

  7. 测试您是否可以通过fabio访问上游服务

    # for urlprefix-/foo
    curl -i http://localhost:9999/foo
    
    # for urlprefix-mysite.com/foo
    curl -i -H 'Host: mysite.com' http://localhost:9999/foo

     

  8. 将所有HTTP流量发送到端口9999上的fabio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值