Apache > HTTP Server > Documentation > Version 2.4 > Modules

Apache Module mod_proxy_protocol

Available Languages:

Description:Implements the server side of the proxy protocol.
Module Identifier:proxy_protocol_module
Source File:mod_proxy_protocol.c


mod_proxy_protocol implements the server side of HAProxy's Proxy Protocol.

The module overrides the client IP address for the connection with the information supplied by the upstream proxy in the proxy protocol (connection) header.

This overridden useragent IP address is then used for the mod_authz_host Require ip feature, is reported by mod_status, and is recorded by mod_log_config %a and core %a format strings. The underlying client IP of the connection is available in the %{c}a format string.

It is critical to only enable this behavior from intermediate proxies which are trusted by this server, since it is trivial for the remote client to impersonate another client. Currently this must be done by external means (such as a firewall) as this module does not (yet) implement access controls.


See also


ProxyProtocol Directive

Description:Enable or disable the proxy protocol handling
Syntax:ProxyProtocol On|Off
Context:server config, virtual host

The ProxyProtocol enables or disables the reading and handling of the proxy protocol connection header. If enabled the upstream client must send the header every time it opens a connection or the connection will get aborted.

While this directive may be specified in any virtual host, it is important to understand that because the proxy protocol is connection based and protocol agnostic, the enabling and disabling is actually based on ip-address and port. This means that if you have multiple name-based virtual hosts for the same host and port, and you enable it any one of them, then it is enabled for all them (with that host and port). It also means that if you attempt to enable the proxy protocol in one and disable in the other, that won't work; in such a case the last one wins and a notice will be logged indicating which setting was being overridden.

ProxyProtocol On

Available Languages:



This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.