Como eu reescrevo * .example.com para www.example.com?

1

Na minha rede, tenho algumas máquinas Ubuntu que precisam baixar arquivos de nl.archive.ubuntu.com . Como é um desperdício de tempo fazer o download de tudo várias vezes, configurei um proxy do squid para armazenar os dados em cache.

Outro uso para esse proxy foi reescrever as solicitações de archive.ubuntu.com ou *.archive.ubuntu.com a nl.archive.ubuntu.com porque esse espelho é mais rápido que os espelhos dos EUA.

Isso funcionou muito bem, mas depois de uma instalação recente da minha máquina de cache, a configuração foi perdida. Lembro-me de ter um programa perl separado para lidar com essa reescrita.

Como configuro um proxy de squid que reescreve o host *.example.com to www.example.com e armazena em cache o resultado do último?

    
por Lekensteyn 12.11.2011 / 18:00

2 respostas

2

Para reescrever as solicitações de espelhamento de *archive.ubuntu.com para nl.archive.ubuntu.com , você precisa criar um auxiliar de reconfiguração e configurar o squid para usar esse auxiliar para reescrever solicitações.

Na configuração do squid (por exemplo, /etc/squid-deb-proxy/squid-deb-proxy.conf ), adicione a linha:

url_rewrite_program /etc/squid-deb-proxy/rewrite.pl

Como você deve ter adivinhado, o arquivo auxiliar precisa ser criado em /etc/squid-deb-proxy/rewrite.pl , contendo:

#!/usr/bin/perl
$mirror = "nl.archive.ubuntu.com";

$| = 1;
while (<>) {
    @line = split;
    $_ = $line[0];
    if (m/^http:\/\/((?:[a-z0-9]+\.)?archive\.ubuntu\.com)\/(.*)/ &&
        $1 ne $mirror) {
        print "http://" . $mirror . "/" . $2 . "\n";
    } else {
        print $_ . "\n";
    }
}

Torne-o executável ( chmod +x /etc/squid-deb-proxy/rewrite.pl ), recarregue a configuração do squid e as alterações devem estar imediatamente visíveis. Você pode verificar isso observando a velocidade ou solicitando certos arquivos que existem somente no espelho local ( http://nl.archive.ubuntu.com/rsyncscript.txt no meu caso).

    
por 13.11.2011 / 00:43
1

Existem alternativas melhores do que o Squid para suas necessidades. Veja o Apt-Cacher NG que foi escrito exatamente para o seu caso de uso.

E se você tiver mais de uma dúzia de sistemas em sua rede, então você deve considerar hospedar um espelho (privado) do Ubuntu .

    
por 12.11.2011 / 18:58

Tags