【问题标题】:Invalid command 'RemoteIPProxyProtocol' (httpd 2.4.6) when running httpd behind HAproxy in tcp mode在 tcp 模式下在 HAproxy 后面运行 httpd 时,命令“RemoteIPProxyProtocol”(httpd 2.4.6)无效
【发布时间】: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


    【解决方案1】:

    刚好遇到同样的问题,查了documentation后:

    RemoteIPProxyProtocol 仅在 httpd 2.4.31 及更新版本中可用

    我目前在 Ubuntu 18.04 上运行 Apache/2.4.29,在 Ubuntu 20.04 上运行 Apache/2.4.41,它适用于 2.4.41。

    【讨论】:

    • 那么我要配置接收访问者的客户端ip而不是apache2.4.29上的代理节点ip?
    猜你喜欢
    • 2018-03-19
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    相关资源
    最近更新 更多