手册:$wgCdnServers

This page is a translated version of the page Manual:$wgCdnServers and the translation is 100% complete.
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 中描述的任何内容都应该有效。

另见