【发布时间】:2020-11-22 01:20:50
【问题描述】:
我正在尝试在充当负载平衡器(tcp 模式)的 HAproxy 和在后面运行的 httpd (2.4.6) 之间设置 PROXY 协议。目标是在 httpd 端获取“真实”客户端 IP 地址。
在 haproxy.conf 中,关键字 send-proxy 已放入所选后端。
行:
LoadModule remoteip_module modules/mod_remoteip.so
已添加到 httpd 配置文件中。
指令RemoteIPProtocolAddress On 已在httpd 虚拟主机配置文件中设置。
但是,当重新加载/重新启动 httpd 时,会出现以下错误:
[root@XXXXXXXXX conf.d]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: enabled)
Active: failed
[...]
Invalid command 'RemoteIPProxyProtocol', perhaps misspelled ...
查看the mod_remoteip source code for httpd 2.4.6,似乎指令RemoteIPProxyProtocol 不再存在。
我不确定版本控制是如何工作的。例如,我可以看到 RemoteIPProxyProtocol 指令存在于 mod_remoteip 2.4.43 中,但不存在于 mod_remoteip 2.4.0 中。
我该如何解决这个问题?例如。编译另一个 mod_remoteip 版本?降级httpd?其他?
谢谢。
【问题讨论】:
标签: apache load-balancing haproxy transparent