Eu resolvi isso.
Teve que adicionar: set_real_ip_from 0.0.0.0;
esse IP é o proxy
Estou executando um servidor Nginx 1.2.4 aqui, e estou atrás de um proxy do meu hoster para evitar ataques de ddos. A desvantagem de estar por trás desse proxy é que preciso obter as informações do IP REAL de um cabeçalho extra. No PHP funciona muito bem fazendo $_SERVER[HTTP_X_REAL_IP]
por exemplo.
Agora, antes de eu estar por trás desse proxy do meu hoster, eu tinha uma maneira muito eficaz de bloquear certos IPs fazendo isso: include /etc/nginx/block.conf
e permitir / negar IPs lá.
Mas agora, devido ao proxy, o Nginx vê todo o tráfego proveniente de 1 IP.
Existe uma maneira de eu conseguir que o Nginx leia os IPs da mesma forma que o PHP, com o X-REAL-IP
header?
Normalmente, os servidores proxy enviam um cabeçalho X_FORWARDED_FOR contendo o endereço IP real dos clientes. Você pode usar --with-http_realip_module
para obter o endereço IP real. Aqui está a página do módulo