Temos um cliente com um site em execução no Apache. Recentemente, o site tem recebido um aumento de carga e, como uma lacuna de interrupção, queremos mudar todo o conteúdo estático do site para domínios sem culinária, por exemplo http://static.thedomain.com
.
A aplicação não está bem compreendida. Então, para dar aos desenvolvedores tempo para alterar o código e apontar seus links para o servidor de conteúdo estático ( http://static.thedomain.com
), pensei em fazer o proxy do site através do nginx e reescrever as respostas de saída para que os links /images/...
sejam reescritos como http://static.thedomain.com/images/...
.
Por exemplo, na resposta do Apache ao nginx, há um blob de Cabeçalhos + HTML. No HTML retornado do Apache, temos <img>
tags parecidas com:
<img src="/images/someimage.png" />
Eu quero transformar isso em:
<img src="http://static.thedomain.com/images/someimage.png" />
Para que o navegador, ao receber a página HTML, solicite as imagens diretamente do servidor de conteúdo estático.
Isso é possível com nginx (ou HAProxy)?
Eu tive uma rápida olhada nos documentos, mas nada me ocorreu, exceto a reescrita de URLs de entrada.
É melhor usar o recurso de proxy e buscar o conteúdo no local apropriado, em vez de reescrever URLs e enviar redirecionamentos de volta ao navegador.
Um bom exemplo de proxy de conteúdo é semelhante a:
Nessa configuração, em vez de redirecionar solicitações
static.domain.com
e esperar que o navegador faça outra solicitação, o nginx simplesmente serve o arquivo a partir do caminho local relevante. Se a solicitação for dinâmica, o proxy entra em ação e busca a resposta de um servidor Apache (local ou remoto) sem que o usuário final saiba.Espero que ajude
fonte
proxy_pass
definido o servidor Apache, por exemploproxy_pass http://172.16.3.1:80
? ou seja, movemos o endereço IP público do site para o servidor nginx / CDN.