.htaccess RewriteCond para REMOTE_ADDR enquanto estiver por trás do Load Balancer?

8

Eu tenho um servidor web por trás de um balanceador de carga.

Eu 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. Essa parte é direta:

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 uma condição de que, se o endereço IP do visitante for meu, ele não me redirecionará para a página de manutenção e eu veria e testaria o site como se estivesse on-line. Esta parte é normalmente também simples:

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 da Web está por trás de um balanceador de carga, REMOTE_ADDR é resolvido para o endereço IP interno do servidor Load Balance.

Como posso alterar isso para procurar o endereço IP encaminhado? Eu sei 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}
    
por Jake Wilson 10.11.2011 / 19:30

4 respostas

8

Use %{HTTP:X-FORWARDED-FOR} em vez de %{REMOTE_ADDR}

    
por 09.10.2012 / 15:50
2

Você precisa de mod_rpaf . Este módulo irá reescrever REMOTE_ADDR no apache com outro cabeçalho, como x-forwarded-for. Muito útil para fazer com que os aplicativos PHP se comportem com balanceadores de carga.

    
por 10.11.2011 / 20:08
0

link

Esta pode ser a resposta?

    
por 10.11.2011 / 19:48
0

Se você tiver dois ambientes, digamos, uma produção por trás do balanceamento de carga e um desenvolvimento ou teste não por trás do balanceamento de carga, e desejar usar o mesmo arquivo .htaccess, precisará de ambos os recursos% {HTTP: X-FORWARDED- FOR} e% {REMOTE_ADDR} - atribui endereços IP a ambas as condições.

    
por 08.05.2013 / 04:12