Apache-2.4 作为 NGINX 的反向代理 - 记录真实 IP

Apache-2.4 作为 NGINX 的反向代理 - 记录真实 IP

我在 Windows 上将 apache-2.4 配置为 Linux 上内部 nginx 服务器的反向代理(我知道!但不要问我为什么!!)。几乎所有功能都运行良好,除了:

我相信我已经配置了 nginx 来使用这个标头记录真实 ip X-Real-IP:。参考。现在在我的反向代理中,我该怎么做才能将此标头设置为客户端的 IP 地址,以便可以记录它。请注意,SSL 在 apache-2.4 上是必须的。目前我的 http-vhosts.conf 有以下内容:

<VirtualHost _default_:443>
    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Ssl on
    RequestHeader set X-URL-SCHEME https
    ServerName www.external.gateway:443
    ServerAlias external.gateway:443 
    ErrorLog "C:/Apache24/logs/gateway-error.log" 
    CustomLog "C:/Apache24/logs/gateway-access.log" common
    # ServerAdmin [email protected]

    SSLEngine On
    SSLCertificateFile C:/Apache24/ssl/external.gateway.crt
    SSLCertificateKeyFile C:/Apache24/ssl/external.gateway.key
    <Location />
       SSLRequireSSL
    </Location>

    ProxyPreserveHost On
    ProxyPass / http://internal.nginx:80/
    ProxyPassReverse / http://internal.nginx:80/
</VirtualHost>

PS:我可能可以X-Forwarded-For在 nginx 中使用,但我需要知道如何在 apache httpd.conf 中设置该标头。任何帮助都值得感激。

答案1

归功于沃特尔

  • mod_proxy_http在 httpd.conf 中的 apache httpd(反向代理)中 启用,如下所示:

    LoadModule proxy_module 模块/mod_proxy.so
    LoadModule proxy_http_module 模块/mod_proxy_http.so

  • 用于X-Forwarded-For在 nginx(上游)中记录 IP,如上所述这里

相关内容