我在 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.