[GH-ISSUE #605] 希望加入负载均衡功能,以及提供外部接口 #473

Closed
opened 2026-05-05 12:18:22 -06:00 by gitea-mirror · 5 comments
Owner

Originally created by @kasuganosoras on GitHub (Jan 17, 2018).
Original GitHub issue: https://github.com/fatedier/frp/issues/605

一、希望FRP能加入负载均衡的功能、

例如可以在客户端配置文件内将多条相同类型的转发隧道归类到一个group里
当有请求的时候,均匀地将请求分配到每个隧道,就可以实现负载均衡的效果了。

(脑洞:frpc将系统负载情况定时上报给frps服务器,frps服务器根据每个frpc的负载情况选择性地转发,当然,这只是个设想,如果能实现那就太好了)

二、希望增加外部通讯接口

希望能够增加外部通讯接口,通过 Socket 或 http 控制 frps/frpc 的启动、关闭、重载配置等,这样在应用起来会方便很多。

感谢~

Originally created by @kasuganosoras on GitHub (Jan 17, 2018). Original GitHub issue: https://github.com/fatedier/frp/issues/605 **一、希望FRP能加入负载均衡的功能、** 例如可以在客户端配置文件内将多条相同类型的转发隧道归类到一个group里 当有请求的时候,均匀地将请求分配到每个隧道,就可以实现负载均衡的效果了。 (脑洞:frpc将系统负载情况定时上报给frps服务器,frps服务器根据每个frpc的负载情况选择性地转发,当然,这只是个设想,如果能实现那就太好了) **二、希望增加外部通讯接口** 希望能够增加外部通讯接口,通过 Socket 或 http 控制 frps/frpc 的启动、关闭、重载配置等,这样在应用起来会方便很多。 感谢~
gitea-mirror 2026-05-05 12:18:22 -06:00
  • closed this issue
  • added the
    todo
    label
Author
Owner

@fatedier commented on GitHub (Jan 17, 2018):

  • 第一条是在规划中的,至于复杂性应该不会太高,你的想法就有些复杂了,做到这个项目里不是很合适,会考虑提供一些常见的负载均衡算法。
  • 启动关闭,涉及到进程管理,这个不会有接口来做。重载配置在 frpc 里已经支持。
<!-- gh-comment-id:358345081 --> @fatedier commented on GitHub (Jan 17, 2018): * 第一条是在规划中的,至于复杂性应该不会太高,你的想法就有些复杂了,做到这个项目里不是很合适,会考虑提供一些常见的负载均衡算法。 * 启动关闭,涉及到进程管理,这个不会有接口来做。重载配置在 frpc 里已经支持。
Author
Owner

@fatedier commented on GitHub (May 22, 2018):

负载均衡目前基本完成了对 tcp proxy 的支持,将在下个版本 v0.20.0 中发布。

# frpc.ini
[test1]
type = tcp
local_port = 8080
remote_port = 80
group = web
group_key = 123

[test2]
type = tcp
local_port = 8081
remote_port = 80
group = web
group_key = 123

对于同一个 group 中的 proxy,frps 接收到连接后会随机分发给其中一个存活的 proxy。
要求 group_key 相同,做权限验证,且 remote_port 相同。

这里存活的定义是 frpc 启动正常。以后会考虑添加健康检查的配置,主动探测后端服务是否能够正常连接,不能连接就从负载均衡中去除。

<!-- gh-comment-id:391048560 --> @fatedier commented on GitHub (May 22, 2018): 负载均衡目前基本完成了对 tcp proxy 的支持,将在下个版本 v0.20.0 中发布。 ```ini # frpc.ini [test1] type = tcp local_port = 8080 remote_port = 80 group = web group_key = 123 [test2] type = tcp local_port = 8081 remote_port = 80 group = web group_key = 123 ``` 对于同一个 group 中的 proxy,frps 接收到连接后会随机分发给其中一个存活的 proxy。 要求 group_key 相同,做权限验证,且 remote_port 相同。 这里存活的定义是 frpc 启动正常。以后会考虑添加健康检查的配置,主动探测后端服务是否能够正常连接,不能连接就从负载均衡中去除。
Author
Owner

@xiaoyell commented on GitHub (May 27, 2018):

@fatedier 每个用户连接时是不是固定一个服务器?

<!-- gh-comment-id:392299238 --> @xiaoyell commented on GitHub (May 27, 2018): @fatedier 每个用户连接时是不是固定一个服务器?
Author
Owner

@wxyzh commented on GitHub (May 27, 2018):

一,haproxy就是专门做高可用的。二,Linux可以用supervisor,有简单的http管理功能

<!-- gh-comment-id:392306584 --> @wxyzh commented on GitHub (May 27, 2018): 一,haproxy就是专门做高可用的。二,Linux可以用supervisor,有简单的http管理功能
Author
Owner

@fatedier commented on GitHub (May 31, 2018):

Support in v0.20.

<!-- gh-comment-id:393600643 --> @fatedier commented on GitHub (May 31, 2018): Support in v0.20.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#473
No description provided.