Como encaminhar solicitações recebidas com um cabeçalho específico OU a partir de um endereço IP específico com uma pilha LAMP

1

Temos uma aplicação Symfony2 que está em desenvolvimento pesado e acabamos de assinar nosso primeiro cliente de produção.

Queremos colocar temporariamente esse cliente em outro cluster que seja estável enquanto continuamos com o desenvolvimento pesado em nosso cluster atual. No entanto, queremos que toda essa situação permaneça invisível para o cliente.

Portanto, eu gostaria de encaminhar seletivamente as solicitações da máquina deste cliente usando sua autorização de cabeçalho de solicitação específica (preferencial) ou seu endereço IP (se o cabeçalho não for possível) do nosso principal servidor da web www para o servidor web de nosso cluster estável .

Eu estou olhando para mod_proxy, isso seria a melhor ferramenta para conseguir isso? Algo mais? Eu posso fazê-lo no aplicativo, se necessário, mas isso adicionaria um pouco de sobrecarga indesejada a cada solicitação. Estamos configurados na AWS se isso fornecer ferramentas adicionais desconhecidas.

Muito obrigado!

    
por Pez 11.08.2014 / 00:48

1 resposta

1

Como você quer fazer o forward seletivamente, você precisa tanto do mod_proxy quanto do mod_rewrite, já que o mod_proxy por si só procuraria apenas pelo contexto da URL

Você pode usar o proxy com base no IP remoto:

RewriteCond %{REMOTE_ADDR} ^12.34.56.78$
RewriteRule ^(.*)$  http://cluster/$1  [P]

ou com base no login (autenticação básica de asuming):

RewriteCond %{REMOTE_USER} ^username$
RewriteRule ^(.*)$  http://cluster/$1  [P]

Existe também o %{HTTP:header_name} no caso de um cabeçalho personalizado:

RewriteCond %{HTTP:my_custom_header_name} ^my_custom_header_value$
RewriteRule ^(.*)$  http://cluster/$1  [P]
    
por 11.08.2014 / 00:55