Eu tenho um servidor web atrás de um balanceador de carga.
Preciso adicionar um redirecionamento condicional ao meu .htaccess para exibir uma página de manutenção sempre que colocarmos o site offline para manutenção. Esta parte é simples:
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]
No entanto, quero adicionar a condição de que, se o endereço IP do visitante for o meu, ele não me redirecionará para a página de manutenção e eu seria capaz de ver e testar o site como se estivesse online. Esta parte também é normalmente direta:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]
No entanto, como meu servidor Web está atrás de um balanceador de carga, ele REMOTE_ADDR
é resolvido para o endereço IP interno do servidor de Balanceamento de Carga.
Como posso alterar isso para procurar o endereço IP encaminhado? Eu sei que em PHP você pode usar $_SERVER['HTTP_X_FORWARDED_FOR']
para obter o endereço IP encaminhado. Eu tentei algumas coisas no, .htaccess
mas sem sorte:
%{X_FORWARDED_FOR}
%{HTTP:X_FORWARDED_FOR}
%{HTTP_X_FORWARDED_FOR}
SOLUÇÃO
Eu tenho o seguinte para trabalhar:
%{HTTP:X-FORWARDED-FOR}
.jpe
ou.jp
arquivos?Respostas:
Use em
%{HTTP:X-FORWARDED-FOR}
vez de%{REMOTE_ADDR}
fonte
Você precisa do mod_rpaf . Este módulo reescreverá REMOTE_ADDR no apache com outro cabeçalho, como x-forwarded-for. Muito útil para fazer com que aplicativos PHP se comportem com balanceadores de carga.
fonte
http://blog.janjonas.net/2010-01-04/apaches-mod_rewrite-mod_proxy-use-reverse-proxy-request-headers-for-rewrite-rules
Essa pode ser a resposta?
fonte
Se você tiver dois ambientes, digamos uma produção por trás do equilíbrio de carga e um desenvolvimento ou teste que não esteja por trás do equilíbrio de carga e deseje usar o mesmo arquivo .htaccess, precisará de% {HTTP: X-FORWARDED-FOR} e % {REMOTE_ADDR} - atribua endereços IP às duas condições.
fonte