手册:$wgCdnServers
Outdated translations are marked like this.
HTTP代理(CDN)设置: $wgCdnServers | |
---|---|
一组“单独的”代理服务器,以帮助 MediaWiki 检测请求是否已被代理。 还要在更改时发送回代理 PURGE 命令。 |
|
引进版本: | 1.34.0 (Gerrit change 387877; git #f9f8dff4) |
移除版本: | 仍在使用 |
允许的值: | 未指定 |
默认值: | [] 在 1.4.0 之前没有设置默认值。 |
其他设置: 按首字母排序 | 按功能排序 |
详情
这个变量是关于告诉 MediaWiki 为您的访问者提供内容的每个代理服务器的“个人”IP 地址是什么。
您还可以明确指定端口号。
但是如果指定了端口号,则需要在$wgCdnServersNoPurge
中添加相同的IP,否则服务器不会被识别为已配置的代理(已知bug T132538)。
If you are upgrading to a MediaWiki version prior to 1.35 you might now need to specify port 80 explicitly if you are using that port. E.g. myserver:80
. Otherwise the port 1080 will be assumed. (https://phabricator.wikimedia.org/T291768)
请注意,如果您有“CIDR”范围(例如 192.0.2.0/24
),请确保将它们设置为 $wgCdnServersNoPurge 。
该设置可用于许多代理设置,既可以在专用网络内使用,也可以通过外部提供商使用,也可以用于基于 Varnish 或 Squid 的外部服务。
使用 Varnish 的配置示例
考虑以下设置细节:
- 一个和/或多个运行 MediaWiki 的网络服务器(“起源”)
- Varnish 配置指向您的 MediaWiki 来源
- 你有一些“Varnish”服务器代理对网络服务器的请求
- 你有一个“单一 IP 地址”列表(不是“CIDR”范围,而是 $wgCdnServersNoPurge !)
以下是您必须设置的配置:
- 在 Varnish 中,使用
client.ip
设置X-Forwarded-For
HTTP header,例如:
set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
- 创建一个服务器数组。理想情况下,它应该是十进制格式的 IP,但这些都可以
// 在 LocalSettings.php 中
$wgUseCdn = true;
$wgCdnServers = array();
$wgCdnServers[] = "192.0.2.100";
$wgCdnServers[] = "192.0.2.107";
$wgCdnServers[] = "192.0.2.200";
$wgCdnServers[] = "some.internal.name"; // 如果您在每个 MW 源上配置了 DNS,也可以使用。 但不推荐。
#$wgCdnServers[] = "192.0.2.0/24"; // 不会工作,参考 $wgCdnServersNoPurge
以下 IP 仅供示例使用,定义在 RFC 5737.
TODO:根据 RFC3849 插入属于 2001:DB8::/32
范围一部分的有效 IPv6 地址 示例
使用说明和历史
- 不需要指定代理软件的端口号。 当您不在端口 80(默认使用)上运行代理软件时,这将很有用。
- 此数组中列出的任何 IP 都将被视为受信任的代理人(反向代理)
- 因此,为通过这些 Squid/Varnish 服务器连接的用户显示的 IP 地址将匹配单个用户的 IP,而不是 Squid 的 IP。
格式
- 每个条目可以是八进制格式的 IPv6/IPv4 地址(例如
192.0.2.3
) - CIDR 表示法和范围应在 $wgCdnServersNoPurge 中配置
includes/utils/IP.php 中描述的任何内容都应该有效。
另见
- Manual:$wgCdnServersNoPurge (等效设置,用于 CIDR 范围)
- Manual:Hooks/IsTrustedProxy - 动态修改代理列表
- 手册:$wgUseCdn
- 手册:配置项目:使用私有IP($wgUsePrivateIPs)