Debian e sua CDN 2

Lembra do post anterior sobre a(s) CDN(s) do Debian? Se não lembra ou não leu, vale ler antes desse aqui. ;)

O anterior comentava um pouco do funcionamento da implantação do CDN baseada em DNS. Dessa vez é comentar um pouco sobre outra “forma” de CDN, esta é baseada em redirecionamento HTTP. A método para usuário é simples, é apenas um redirecionamento (Código HTTP 302) para o local onde o serviço identifica que o usuário terá melhor desempenho para baixar os pacotes Debian.

Um teste simples realizado no Brasil.

    fike@klatoon:~$ curl -I https://http.debian.net/debian/
    HTTP/1.1 302 Moved Temporarily
    Date: Thu, 18 Jul 2013 01:25:40 GMT
    Server: Apache/2.2.16 (Debian)
    Vary: x-web-demo,Accept-Encoding
    X-IP: 179.186.50.212
    X-AS: 18881
    X-URL:
    X-Arch:
    X-Country: BR
    X-Continent: SA
    X-Std-Dev: 12.0185273640326
    X-Population: 4
    X-Closest-Distance: 0
    X-Distance: 0
    X-Match-Type: country
    Link: ; rel=duplicate; pri=1; depth=0, ; rel=duplicate; pri=1; depth=0
    Location: https://debian.c3sl.ufpr.br/debian/
    Content-Type: text/plain

Na resposta do servidor a requisição realizado pelo curl tem vários cabeçalhos que ajudam entender o funcionamento. O servidor do http.debian.net identifica o IP de origem da requisição, o país, o Autonomous System (AS), etc. Ao final tem o cabeçalho Location apontando qual será a URL que responderá a requisição.

Abaixo o mesmo teste mas realizado nos EUA.

fike@midstorm:~$ curl -I https://http.debian.net/debian/
HTTP/1.1 302 Moved Temporarily
Date: Thu, 18 Jul 2013 01:26:07 GMT
Server: Apache/2.2.16 (Debian)
Vary: x-web-demo,Accept-Encoding
X-IP: 74.50.55.64
X-AS: 36024
X-URL:
X-Arch:
X-Country: US
X-Continent: NA
X-Std-Dev: 3.5960358730135
X-Population: 15
X-Closest-Distance: 13.434
X-Distance: 13.434
X-Match-Type: country
Location: https://debian.gtisc.gatech.edu/debian/
Content-Type: text/plain

Interessante que no teste dos EUA tem um pouco mais de informações que melhoram a escolha do melhor espelho (mirror) do repositório Debian para para a requisição.

Se quiser conhecer um pouco mais pode entrar na página do projeto no Github. Ele bem simples e o Raphael Geissert ficará feliz com informações de bugs, patches, etc. ;)

Ah! Já estava esquecendo, se quiser testá-lo, basta adicionar uma linha no /etc/apt/sources.list. No meu caso estou usando para o Sid/Unstable.

deb [arch=amd64,i386] https://http.debian.net/debian/ unstable main contrib non-free
comments powered by Disqus