很多时候,因为业务需要,安全需要,负载均衡等等情况下,内部的服务使用的是反代的原理,并不直接暴露在公网上供人使用,服务所在服务器没有公网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社区开始讨论