反向代理背后的 Mediawiki 使用代理地址填充用户 IP 地址

反向代理背后的 Mediawiki 使用代理地址填充用户 IP 地址

我在 fw 机器上运行了 apache,它将不同的文件夹反向代理到不同的后端服务器,并且还将连接包装在 SSL 中。...一个相当常见的设置。

可以预见的是,后端 mediawiki 实例认为所有访问都来自 1 个 IP,即反向代理的 IP。由于 mediawiki 功能的一个重要部分已经丢失,是否可以传递正确的 IP 地址供 mediawiki 引用和用于用户管理和日志记录(即 IP 断言)?HTTP 标头是有意义的。

答案1

绝对地。

如果您正在使用 mod_proxy_http,Apache 很可能已经在 X-Forwarded-For 标头中发送真实 IP。

看起来 MediaWiki 通过在您的配置中启用一个变量来支持此功能:

$wgUsePrivateIPs = true;
$wgSquidServers = array( 'proxy fqdn', 'proxy ip address' );

更多信息:https://www.mediawiki.org/wiki/Manual:$wgUsePrivateIPs

启用此功能将告诉 MediaWiki 从 X-Forwarded-For 标头读取客户端 IP。

答案2

您可以尝试使用以下 apache 模块

# yum info mod_extract_forwarded
Name        : mod_extract_forwarded
Arch        : x86_64
Version     : 2.0.2
Release     : 8.el6
Size        : 15 k
Repo        : epel
Summary     : Extract real source IP for forwarded HTTP requests
URL         : http://www.openinfo.co.uk/apache/
License     : ASL 1.1
Description : mod_extract_forwarded hooks itself into Apache's header parsing phase and looks
            : for the X-Forwarded-For header which some (most?) proxies add to the proxied
            : HTTP requests. It extracts the IP from the X-Forwarded-For and modifies the
            : connection data so to the rest of Apache the request looks like it came from
            : that IP rather than the proxy IP.

相关内容