2017-02-17 2 views
0

У меня есть 2 веб-сервера, и в какой-то момент веб-серверу A необходимо будет запросить некоторые данные с веб-сервера B и для этого ему необходимо отправить IP-адрес пользователя. Однако, если я просто позвоню file_get_contents() на сервере A, B определит IP-адрес сервера A, а не пользователя. Второй вариант - передать IP-адрес в строке запроса, но nginx на сервере B скомпилирован с помощью модуля geoip, и я нахожу код страны в переменной $_SERVER['COUNTRY_CODE'].Передайте IP-адрес пользователя другому веб-серверу

Итак, мой вопрос, есть ли способ использовать CURL для передачи IP-адреса пользователя с сервера A на сервер B в запросе? Возможно, мне нужно установить некоторый заголовок, и этот заголовок будет рассмотрен с помощью модуля geoip?

+0

Возможно, это может помочь: http://serverfault.com/questions/331079/haproxy-and-forwarding-client-ip-address-to-servers –

+0

Передайте IP как HTTP-заголовок, например 'X-Forwarded-For: {IP}', на сервер B и использовать модуль RealIP Nginx на сервере B. http://nginx.org/en/docs/http/ngx_http_realip_module.html –

ответ

0

Используйте это на сервере A:

curl www.domain.tld --header "X-Forwarded-For: xxx.xxx.xxx.xxx" 

Вы должны заменить IP клиента с xxx.xxx.xxx.xxx на сервере A.

В зависимости от вашего приложения вам может понадобиться, чтобы проинструктировать его для проверки X-Forwarded-For на сервер B.

Смежные вопросы