Varnish não passa corretamente o IP do usuário para o MediaWiki

1

Estou executando uma configuração com Nginx, FastCGI, APC, Memcache e Varnish para hospedar uma instalação do MediaWiki. Estou tendo alguns problemas com as alterações recentes aparecendo como vindas de 127.0.0.1 no caso de usuários anônimos. Eu suspeitei que o problema é que o Varnish não passa o IP do usuário para o Nginx corretamente, mas eu tenho isso no meu vcl_recv:

# Set client IP
if (req.http.x-forwarded-for) {
    set req.http.X-Forwarded-For =
    req.http.X-Forwarded-For + ", " + client.ip;
} else {
    set req.http.X-Forwarded-For = client.ip;
}

Alguém poderia me dizer o que mais posso precisar para verificar se isso poderia causar esse problema? Porque eu estou perdido ...

    
por FHannes 09.02.2013 / 01:40

2 respostas

3

Você deve configurar o MediaWiki para que ele realmente obedeça ao cabeçalho X-Forwarded-For . Sem essas configurações, o MediaWiki irá ignorá-lo.

(Por razões históricas, todas essas opções de configuração referem-se ao Squid ...)

No mínimo, essas linhas devem estar em LocalSettings.php :

$wgUseSquid = true;
$wgSquidServers = array('127.0.0.1'); # IP address of your varnish server
    
por 09.02.2013 / 02:22
0

As linhas que você descreve a partir da sua configuração, defina o cabeçalho X-Forwarded-For para o IP do cliente. No entanto, você ainda precisa informar ao seu servidor da Web (Nginx) para verificar e usar esse valor como o endereço IP.

A maneira mais fácil de fazer isso é provavelmente com o módulo Real IP do Nginx. Em primeiro lugar, verifique se o Nginx foi construído com o módulo IP real:

Execute nginx -V e procure por --with-http_realip_module

Em seguida, modifique sua configuração do Nginx (geralmente /etc/nginx.conf), adicionando o seguinte à seção http :

#Upstream server address (i.e. Varnish address)
set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For;

Reinicie o Nginx e o endereço IP em todos os locais (logs, valores passados para php, etc.) agora deve ser derivado do cabeçalho X-Forwarded-For.

    
por 09.02.2013 / 02:11