Я запускаю обратный прокси-сервер nginx в контейнере докера. И бэкенд - это сервер Apache, запущенный на хосте, который прослушивает порт 10082
. Laravel
обрабатывать запрос. И я используюNginx proxy pass real ip не работает
$request->getClientIp()
получить реальный IP. Тем не менее, результат посещения сервера http://myip:10082
напрямую без конфликтов прокси с результатом посещения его обратным прокси.
Тест-код в Laravel:
echo $request->ip().'<br>';
echo $request->headers->get('X-Real-IP').'<br>';
echo $request->getClientIp().'<br>';
Результат с прокси:
192.168.80.2
218.205.17.167
192.168.80.2
Результат без доверенности (XX.XXX.236.29 мой реальный IP):
XX.XXX.236.29
XX.XXX.236.29
Конфигурация nginx:
server {
listen 80;
server_name myserver.com;
access_log logs/myserver.access.log main;
location/{
proxy_pass http://myip:10082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Я так смущен. Может ли кто-нибудь помочь мне решить эту проблему. Благодаря!
Отъезд: http://stackoverflow.com/a/41748592/7377984 и https://github.com/fideloper/TrustedProxy – Paras