Получение клиентского IP при прохождении через обратный прокси

В моем VPS я размещаю несколько веб-сайтов. все живущие в его собственном Контейнере Linux. Например,

Сайт № 1-> 10.0.3.111

Сайт № 2-> 10.0.3.112

Сайт № 3-> 10.0.3.113

Для знания, где перенаправить каждый запрос у меня также есть обратный прокси nginx в другом Контейнере Linux в 10.0.3.101

Проблема, которую я имею, состоит в том, что в одном из моих веб-сайтов, который выполняет Laravel, я пытаюсь получить IP клиента, как это:

<p>IP Address: {{ Request::getClientIp() }}</p>

Проблема состоит в том, что я добираюсь все время 10.0.3.101, вместо IP клиента.

Я предполагаю, что Laravel получает IP последнего хоста, куда запрос прибыл мысль, не начальная, которая запустила запрос.

Существует ли способ, которым я мог получить тот IP, не изменяя эту структуру?

Конфигурации

Это - мой nginx hostfile:

server {
        listen 80;
        server_name example.com www.example.com;

        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://10.0.3.115;
        }
}
3
задан 6 August 2014 в 19:39
1 ответ

Вам нужно установить доверенный прокси . В этом случае getClientIp() будет использовать X-Forwarder-For заголовок для получения IP-адреса клиента.

.
2
ответ дан 3 December 2019 в 07:01

Теги

Похожие вопросы