A apresentação de Mark Jaquith sobre Confident Commits, Delightful Deploys trouxe algo que eu não pensei, “CDN faz proxy de tudo, incluindo páginas dinâmicas de php”.
Em seu exemplo, ele apontou cdn.wpengine.com e wpengine.com , cdn.page.ly e page.ly , cdn.zippykid.com e zippykid.com estão todos servindo o mesmo conteúdo com sua contraparte CDN.
Então, por curiosidade, testei os meus, cdn.lesterchan.net e lesterchan.net, e tive o mesmo problema! Não fiz o link porque já resolvi o problema antes de escrever esta postagem no blog.
Um elo comum entre nós são nossos CDNs hospedados pela NetDNA . Então, escrevi para eles perguntando se há algum lugar onde eu possa resolver isso. Eles me recomendaram seu complemento EdgeRules , que fornece um método poderoso de controlar como os servidores de borda interagem com o conteúdo e os visitantes dos sites.
Eu tentei e funciona! O que fiz foi permitir que apenas URI com extensões de arquivo fossem veiculados pelo CDN, conforme mostrado na captura de tela abaixo:
Match Type: Default
Directive: REWRITE RULE ^(.*)$ http://lesterchan.net$1 permanent
Conditional: $uri != RegEx (Case In-Sensitive) \.(png|jpe?g|gif|ico|html|txt|css|js)$
Rule Status: Active
Purge All Files: Yes
É um pouco “hack-ish”, mas acho que servirá por agora.
Uma maneira apropriada que Mark Jaquith mencionou foi CNAME o CDN para algo como static.yourdomain.com e fazer com que esse subdomínio sirva apenas arquivos estáticos.