Назад | Перейти на главную страницу

Перенаправление и геолокализация Nginx

У меня следующая проблема с Nginx и GeoIP, и будет хорошо, если вы дадите мне несколько советов о решении.

Примечание. Я знаю, что это можно решить на стороне DNS, но сейчас это невозможно, поэтому я ищу другое решение.

Эта проблема
У моего www.domain.com есть IP-адрес 1.1.1.1, расположенный в Amazon, на котором запущен Nginx, с таким перенаправлением:

location / {
proxy_pass http://2.2.2.2
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

В 2.2.2.2 есть еще один nginx, использующий geoIP. Проблема в том, что все мои клиенты, похоже, происходят из 1.1.1.1, поскольку 2-й nginx геолокатирует $remote_addr.

Есть ли способ поймать реальный IP-адрес клиента ($ remote_addr в 1.1.1.1) и передать его в качестве другой переменной в 2.2.2.2 и использовать его для геолокации?

Любые подсказки, комментарии или RTFM приветствуются. Я буду искать решение, чтобы попытаться ответить на этот вопрос.

Спасибо.

На восходящем nginx используйте Модуль RealIp чтобы получить настоящий IP из X-Forwarded-For заголовок, который вы отправляете из подчиненного nginx.

Например:

server {
    set_real_ip_from 1.1.1.1;
    real_ip_header X-Forwarded-For;