CNN CNNs não estão resolvendo a origem do cliente

3

Eu configurei um CDN do Edgecast para espelhar todo o meu conteúdo estático. Como uso a raiz do meu domínio ( donaldjenkins.com ) para hospedar meu site principal - usando o Google Analytics, que define cookies - armazenei os arquivos estáticos correspondentes em um cookieless domain ( donaldjenkins.info ) que é usado apenas para essa finalidade. Eu o configurei (usando este guia para orientação geral), com os seguintes estrutura, com base em uma combinação de origem do cliente e origem do CDN para aproveitar ao máximo o nome de domínio curto escolhido e fornecer URLs significativos:

  1. http://donaldjenkins.info:80 está definido como origem do cliente para o conteúdo armazenado no CDN no diretório http://wac.62E0.edgecastcdn.net/8062E0/donaldjenkins.info ;

  2. Eu, então, configurei vários subdomínios de um domínio separado, os CNAMEs de borda% strong cdn.dj , com origem CDN para cada um dos tipos de conteúdo estático correspondentes:

    • js.cdn.dj aponta para o diretório de origem http://wac.62E0.edgecastcdn.net/0062E0/donaldjenkins.info/js ;
    • css.cdn.dj aponta para o diretório de origem http://wac.62E0.edgecastcdn.net/0062E0/donaldjenkins.info/css ;
    • images.cdn.dj aponta para o diretório de origem http://wac.62E0.edgecastcdn.net/0062E0/donaldjenkins.info/images

e assim por diante. Isso resulta em algumas URLs bem legais, curtas e claras.

O arquivo de zona DNS para cdn.dj (sim, é um nome de domínio real registrado no Djibouti) está definido corretamente:

cdn.dj          43200   IN   A       205.186.157.162     
css.cdn.dj      43200   IN   CNAME   wac.62E0.edgecastcdn.net.
images.cdn.dj   43200   IN   CNAME   wac.62E0.edgecastcdn.net.
js.cdn.dj       43200   IN   CNAME   wac.62E0.edgecastcdn.net.

O DNS resolve o URL do Edgecast:

$ host js.cdn.dj
js.cdn.dj is an alias for wac.62E0.edgecastcdn.net.
wac.62E0.edgecastcdn.net is an alias for gs1.wac.edgecastcdn.net.
gs1.wac.edgecastcdn.net has address 93.184.220.20

Mas sempre que tento buscar um arquivo em qualquer um dos diretórios para os quais os ativos CNAME mapeiam, recebo um 404:

$ curl http://js.cdn.dj/combined.js
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>404 - Not Found</title>
    </head>
    <body>
        <h1>404 - Not Found</h1>
    </body>
</html>

apesar do fato de que o arquivo de origem do cliente correspondente existe:

$ curl http://donaldjenkins.info/js/combined.js

busca o conteúdo do arquivo combined.js . No entanto, tem sido mais do que tempo suficiente para o DNS se propagar desde que eu configurei o CDN.

Há, obviamente, algum erro gritante na configuração descrita acima, e eu sou um pouco novato com CDNs - mas qualquer sugestão seria recebida com gratidão.

    
por Donald Jenkins 02.03.2012 / 20:42

2 respostas

3

Não tem nada a ver com o DNS. Você não deveria estar usando servidores de origem CDN. Todo o seu conteúdo está no seu servidor de origem do cliente. Com os servidores de origem da CDN, você manualmente (via FTP) carrega conteúdo para ele.

Portanto, exclua os servidores de origem do CDN. Apague o cdn.dj A record (supondo que você só quer usar o cdn.dj para o cdn)

Siga estas instruções do link :

Para configurar nossos servidores de borda para reconhecer seu CNAME

  1. Navegue até a página Edge Cnames, que pode ser encontrada na guia HTTP Small Object do o MCC.
  2. Na opção New Edge Cname, digite o nome do registro CNAME desejado. o O CNAME deve ser especificado em letras minúsculas e não deve incluir o protocolo (por exemplo, http: //). [Por exemplo, js.cdn.dj. -MAW]
  3. Selecione se o CNAME especificado apontará para um servidor de origem ou origem de CDN do cliente. [No seu caso, origem do cliente. -MAW]
  4. Pela opção Pontos para, selecione o local raiz no servidor de origem para o qual o CNAME será apontado. Se você gostaria de indicar uma pasta específica, então você deve digite uma barra (/) seguida do caminho para a pasta desejada. [Por examample: link para js.cdn.dj. -MAW]
  5. Clique em Adicionar.
  6. Verifique se um registro CNAME que aponta para o mesmo domínio foi registrado em seu servidor DNS. Esse registro CNAME deve corresponder ao nome atribuído à sua borda CNAME. [Você já fez isso. -MAW]

Então é isso que acontece:

  1. Um navegador da web faz uma solicitação para o link
  2. O CNAME envia a solicitação para wac.62E0.edgecastcdn.net.
  3. wac.62E0.edgecastcdn.net examina o cabeçalho do host HTTP e vê js.cdn.dj.
  4. O wac.62E0.edgecastcdn.net examina sua configuração e encontra um URL de mascaramento para o js.cdn.dj com o link do servidor de origem do cliente
  5. wac.62E0.edgecastcdn.net age como se tivesse recebido uma solicitação para a URL link .
  6. combined.js é exibido a partir do cache ou recuperado do link e exibido.
por 03.03.2012 / 04:06
2

Isso porque você não configurou seu DNS corretamente.

Parece que você tem o curinga DNS ativado, para que qualquer coisa. donaldjenkins.info seja um registro A para 205.186.157.162 .

Seus subdomínios css, js e images também parecem apontar para este IP em vez de ser o CNAMES; Isso me leva a acreditar que você configurou isso de forma incorreta.

Para configurar os subdomínios images , você deve ter algo como:

images.cdn 43200 IN CNAME wac.62E0.edgecastcdn.net.

Eu realmente espero que você diga *.cdn.dj como uma forma de encurtar o donaldjenkins.info, já que cdn.dj não é um domínio real que você pode usar.

    
por 02.03.2012 / 21:11

Tags