[GH-ISSUE #1181] 功能建议:证书托管,流量统计,WAF,统一的web化管理入口,以及插件系统 #927

Closed
opened 2026-05-05 12:35:20 -06:00 by gitea-mirror · 4 comments
Owner

Originally created by @denymz on GitHub (Apr 7, 2019).
Original GitHub issue: https://github.com/fatedier/frp/issues/1181

建议功能:证书托管
使用场景:用于https协议下修改header,以便于让内网侧获取到访问者真实IP。
建议功能:流量统计,WAF,统一的web化管理入口,以及插件系统
(咦!这样貌似好像往web网关方向发展了)
嗯,刚刚想到完全可以在frps前面加一层web网关,将https请求降为http并反向代理到frps。
web网关开源解决方案:orange ,verynginx,kong,janusec;(不过实际使用下来这些方案功能上或多或少都有些欠缺,不太尽如人意)

问题:
如果前置一层nginx,frps会不会还在http的header中设置X-Real-IP?如果设置的话那设置的岂不是nginx的ip?所以建议在配置文件中提供关闭这一功能的选项。

所以我也是顺便这么一提,这些个功能加不加已经完全无所谓了。
(想明白了之后本来不打算开这个Issues了,但还是决定开出来给有需要的人一个思路)

Originally created by @denymz on GitHub (Apr 7, 2019). Original GitHub issue: https://github.com/fatedier/frp/issues/1181 建议功能:证书托管 使用场景:用于https协议下修改header,以便于让内网侧获取到访问者真实IP。 建议功能:流量统计,WAF,统一的web化管理入口,以及插件系统 (咦!这样貌似好像往web网关方向发展了) 嗯,刚刚想到完全可以在frps前面加一层web网关,将https请求降为http并反向代理到frps。 web网关开源解决方案:orange ,verynginx,kong,janusec;(不过实际使用下来这些方案功能上或多或少都有些欠缺,不太尽如人意) 问题: 如果前置一层nginx,frps会不会还在http的header中设置X-Real-IP?如果设置的话那设置的岂不是nginx的ip?所以建议在配置文件中提供关闭这一功能的选项。 所以我也是顺便这么一提,这些个功能加不加已经完全无所谓了。 (想明白了之后本来不打算开这个Issues了,但还是决定开出来给有需要的人一个思路)
Author
Owner

@fatedier commented on GitHub (Apr 9, 2019):

  • 证书感觉没有必要支持,nginx 等项目提供了比较全面的解决方案,最好是搭配使用。就像你说的,如果 HTTP/S 各方面的功能都能支持全面,那就真的成了一个 web 网关,耗费精力且与现有的成熟项目比较也没有优势。目前的策略就是能够支持在内网穿透过程中比较强烈的一些需求,如果有其他的解决方案就尽量不在这个项目里面做,避免过于臃肿。
  • https 获取访问者真实 IP ,下个版本会支持 proxy protocol,内网的服务套一个 nginx 应该可以解决这个问题。
  • frps 目前应该没有设置 X-Real-IP,只会设置 X-Forwarded-For,文档可能有误,之后会修改。X-Forwarded-For 如果经过了多个 proxy,会记录每一个路径的 IP,以逗号分隔,所以应该没有问题。
<!-- gh-comment-id:481069509 --> @fatedier commented on GitHub (Apr 9, 2019): * 证书感觉没有必要支持,nginx 等项目提供了比较全面的解决方案,最好是搭配使用。就像你说的,如果 HTTP/S 各方面的功能都能支持全面,那就真的成了一个 web 网关,耗费精力且与现有的成熟项目比较也没有优势。目前的策略就是能够支持在内网穿透过程中比较强烈的一些需求,如果有其他的解决方案就尽量不在这个项目里面做,避免过于臃肿。 * https 获取访问者真实 IP ,下个版本会支持 proxy protocol,内网的服务套一个 nginx 应该可以解决这个问题。 * frps 目前应该没有设置 `X-Real-IP`,只会设置 `X-Forwarded-For`,文档可能有误,之后会修改。`X-Forwarded-For` 如果经过了多个 proxy,会记录每一个路径的 IP,以逗号分隔,所以应该没有问题。
Author
Owner

@recolic commented on GitHub (Aug 9, 2019):

尽可能保证一个软件只做一件事并且做到最好的理念吧。

<!-- gh-comment-id:519757049 --> @recolic commented on GitHub (Aug 9, 2019): 尽可能保证一个软件只做一件事并且做到最好的理念吧。
Author
Owner

@cxueqin commented on GitHub (Sep 9, 2019):

@fatedier 赞同作者的观点,Keep It Simple and Stupid(KISS),希望更多的是用组合,而不是在一个软件上叠加太多的功能,这也是unix程序设计的精髓所在,感谢,加油

<!-- gh-comment-id:529547620 --> @cxueqin commented on GitHub (Sep 9, 2019): @fatedier 赞同作者的观点,Keep It Simple and Stupid(KISS),希望更多的是用组合,而不是在一个软件上叠加太多的功能,这也是unix程序设计的精髓所在,感谢,加油
Author
Owner

@fatedier commented on GitHub (Mar 29, 2020):

服务端插件的能力已经支持,可以通过插件机制扩展这些能力。

<!-- gh-comment-id:605637961 --> @fatedier commented on GitHub (Mar 29, 2020): 服务端插件的能力已经支持,可以通过插件机制扩展这些能力。
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#927
No description provided.