Regexp no reqrep do HAProxy para gerenciamento de ativos

2

Estou hospedando recursos no S3 com esse tipo de URL: link Em meu aplicativo, automaticamente exibo um URL com versão para forçar o navegador a baixar novos arquivos após a implantação: "/1.2.3/image.jpg"

Em toda implantação, gostaria apenas de substituir arquivos antigos. Então eu preciso de um regexp no HAProxy para reescrever isso:

1.2.3/image.jpg

para isso:

http://cdn.site.com/image.jpg

A outra pergunta é: o HAProxy redirecionará o pedido (visível para o usuário) ou apenas fará isso no "back" para que este redirecionamento seja invisível.

Obrigado antecipadamente!

    
por user130224 29.07.2012 / 21:05

1 resposta

0

Aqui está o código para fazer isso.

acl imagereq path_beg /image.jpg

reqrep ^Host:\ 1.2.3   Host:\ cdn.site.com if imagereq

Mas não acho que seja realmente o que você quer fazer.

O reqrep terá a mudança haproxy, onde obtém o conteúdo que serve ao seu usuário.

No entanto, se o usuário tiver que percorrer todo o caminho até o seu servidor, você já terá desperdiçado a maior parte dos benefícios de um bom CDN. (boas CDNs estão mais perto de seus usuários do que você, e seus usuários ganham sendo capazes de obter parte do seu conteúdo deles em vez de voltarem até você)

Quando você usa o reqrep, você está apenas fazendo o haproxy aparecer no nó CDN mais próximo de você em vez de obtê-lo no servidor que você mantém.

Idealmente, o que você deseja fazer é ajustar seu HTML para apontar diretamente para o seu CDN.

Analise a fonte de visualização de sites como o facebook, etc. Você verá os links repletos de URLs como static.ak.fbcdn.net.

static.ak.fbcdn.net é um apelido para static.ak.facebook.com.edgesuite.net. static.ak.facebook.com.edgesuite.net é um apelido para a749.dsw4.akamai.net.

o akamai é um provedor de CDN bem conhecido.

Ao colocar explicitamente seus locais de conteúdo de cdn em seu HTML bruto, seu usuário só precisa pegar o seu HTML principal, e todo o outro conteúdo será carregado diretamente de um CDN (espero) mais próximo ao seu usuário do que você é ...

Você pode considerar que o haproxy envie um redirecionamento para o usuário, apontando-o no CDN para o conteúdo. Mas como eu disse antes, se o usuário já chegou até a sua porta da frente, você está desperdiçando muitos benefícios de um CDN.

Boa sorte.

    
por 17.08.2012 / 07:19