Manual:$wgSquidServers

This page is a translated version of the page Manual:$wgSquidServers and the translation is 85% complete.
Outdated translations are marked like this.
HTTP proxy (CDN) settings: $wgSquidServers
Una matriz de servidores proxy individuales para ayudar a MediaWiki a detectar si la petición ha pasado por un proxy.
También sirve para enviar de vuelta al proxy comandos PURGE al producirse cambios.
Introducido en la versión:1.2.0
Desaconsejado en versión:1.34.0 (Gerrit change 387877; git #f9f8dff4)
Eliminado en la versión:1.35.0 (Gerrit change 579755; git #e8d9d68b)
Valores permitidos:no especificado
Valor predeterminado:[]
Antes de MW 1.4.0 no había ningún valor predeterminado.
Aunque esta variable contiene la palabra Squid, también puede utilizarse con otros proxies caché, como Varnish.

Detalles

Esta variable sirve para decirle a MediaWiki cuáles son las direcciones IP individuales de cada servidor proxy que sirve contenido a tus visitantes.

You can also specify port numbers explicitly. However, if you specify port numbers, you need to add the same IP to $wgSquidServersNoPurge , otherwise the server will not be recognized as a configured proxy (known bug T132538).

Ten en cuenta que si tienes rangos CIDR (por ejemplo, $cdir) debes asegurarte de indicarlos en $wgSquidServersNoPurge.

La directiva puede usarse en muchas configuraciones proxy, ya sea dentro de una red privada, a través de un proveedor externo, y también con servicios externos que estén basados ya sea en Varnish o en Squid.

Ejemplo de configuración con Varnish

Supongamos esta situación hipotética:

  • Uno o más servidores web ("orígenes") donde corre MediaWiki.
  • Configuración de Varnish apuntando a tus orígenes con MediaWiki.
  • Tienes unos pocos servidores Varnish que pasan por proxy peticiones a los servidores web.
  • Tienes una lista de direcciones IP individuales (¡no rangos CIDR, que éso iría en $wgSquidServersNoPurge!).

Ésta es la configuración que tienes que hacer:

  • En Varnish, habilita una cabecera HTTP X-Forwarded-For con client.ip, por ejemplo:
set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
  • Crea una matriz de servidores. Lo ideal serían una serie de IPs en formato decimal, pero esto serviría:
// En LocalSettings.php
$wgUseSquid = true;
$wgSquidServers = array();
$wgSquidServers[] = "192.0.2.100"; 
$wgSquidServers[] = "192.0.2.107";
$wgSquidServers[] = "192.0.2.200";
$wgSquidServers[] = "some.internal.name";  // También funciona si tienes un DNS configurado en cada origen con MW. Pero no se recomienda.
#$wgSquidServers[] = "192.0.2.0/24";       // NO FUNCIONARÁ, mira $wgSquidServersNoPurge
Las IPs de la lista se usan sólo a modo de ejemplo y siguiendo la definición del RFC 5737.

TODO: Insert example of a valid IPv6 address that is part of 2001:DB8::/32 range as per RFC3849

Notas de uso e historial

  • No es necesario indicar el número de puerto de tu software proxy. Pero puedes hacerlo con MediaWiki 1.16 y posteriores. Esto te vendrá bien si no corres tu software proxy en el puerto 80 (usado de forma predeterminada).
  • Cualquier IP que figure en esta matriz se tratará como surrogada de confianza (proxies inversos).
  • Las direcciones IPs mostradas para usuarios conectados a través de estos servidores Squid/Varnish aludirán por lo tanto a IPs de usuarios individuales, no a la IP de Squid.
En las versiones de MW anteriores a la 1.4.0, esta directiva no estaba definida en DefaultSettings.php (aunque su uso sí se comentaba allí). Esto puede haberse debido a que no estaba implantada correctamente, o simplemente por descuido.

Formato

  • Cada elemento debe ser una dirección IPv6 o IPv4 en formato octal (por ejemplo 192.0.2.3)
  • La notación y los rangos CIDR deben configurarse en $wgSquidServersNoPurge

Todo lo que se describe en includes/utils/IP.php debería ser válido.

Véase también