很多时候,因为业务需要,安全需要,负载均衡等等情况下,内部的服务使用的是反代的原理,并不直接暴露在公网上供人使用,服务所在服务器没有公网 ip,或者不直接提供公网 ip,frp 是一个可以实现反代的工具,根据官方教程说明,http 协议下,有 X-Forwarded-For 的方式获取真实 ip,简单对后端的 apache 配置即可拿到真实 ip,但是在 https 等方式下,就不能直接拿到真实 ip,根据手册说明 https://gofrp.org/docs/features/common/realip/,我们可以利用 Proxy Protocol 协议获取,需要配合使用 mod_remoteip 模块,然后在 vhost 里增加:
RemoteIPProxyProtocol On
即可。
具体详细文档可以参考:https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html#remoteipproxyprotocol
另外请注意,RemoteIPProxyProtocol 仅在 (apache)httpd 2.4.31 及以上版本可用。
在 Discourse 社区开始讨论