健康检查

通过给 proxy 加上健康检查的功能,可以在要反向代理的服务出现故障时,将这个服务从 frps 中摘除,搭配负载均衡的功能,可以用来实现高可用的架构,避免服务单点故障。

在每一个 proxy 的配置下加上 health_check_type = {type} 来启用健康检查功能。

type 目前可选 tcp 和 http。

tcp 只要能够建立连接则认为服务正常,http 会发送一个 http 请求,服务需要返回 2xx 的状态码才会被认为正常。

tcp 示例配置如下:

  1. # frpc.ini
  2. [test1]
  3. type = tcp
  4. local_port = 22
  5. remote_port = 6000
  6. # 启用健康检查,类型为 tcp
  7. health_check_type = tcp
  8. # 建立连接超时时间为 3 秒
  9. health_check_timeout_s = 3
  10. # 连续 3 次检查失败,此 proxy 会被摘除
  11. health_check_max_failed = 3
  12. # 每隔 10 秒进行一次健康检查
  13. health_check_interval_s = 10

http 示例配置如下:

  1. # frpc.ini
  2. [web]
  3. type = http
  4. local_ip = 127.0.0.1
  5. local_port = 80
  6. custom_domains = test.yourdomain.com
  7. # 启用健康检查,类型为 http
  8. health_check_type = http
  9. # 健康检查发送 http 请求的 url,后端服务需要返回 2xx 的 http 状态码
  10. health_check_url = /status
  11. health_check_interval_s = 10
  12. health_check_max_failed = 3
  13. health_check_timeout_s = 3