Как получить реальный IP-адрес клиента, если запрос был передан из одного приложения в другое? - PullRequest
1 голос
/ 29 апреля 2019

У нас есть внешнее приложение A (staticfile_buildpack), которое перенаправляет все REST-запросы в серверное приложение B (nodejs-buildpack).Как мы можем получить реальный IP-адрес клиента в приложении B?Я ожидал бы иметь IP-адрес клиента в заголовке x-forwarded-for.

Конфигурация NGINX приложения A:

location ~ ^/rest/(.*)$ {
  resolver        8.8.8.8 ipv6=off; # Google DNS
  proxy_pass      https://app-b.scapp.io/rest/$1$is_args$args;

Полученные заголовки запроса в приложении B:

host: 'app-b.scapp.io'
user-agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:66.0) Gecko/20100101 Firefox/66.0',
accept: '*/*',
accept-encoding: 'gzip, deflate, br',
accept-language: 'de,en-US;q=0.7,en;q=0.3',
b3: 'af89bc574dc6b9e7-af89bc574dc6b9e7',
referer: 'https://app-a.scapp.io/',
x-b3-spanid: 'some-id',
x-b3-traceid: 'some-id',
x-cf-applicationid: 'some-id',
x-cf-instanceid: 'some-id',
x-cf-instanceindex: '1',
x-forwarded-for: '100.106.226.30, 100.106.132.129', // Swisscom IPs?
x-forwarded-proto: 'https, https',
x-request-start: '1556521740817',
x-vcap-request-id: 'some-id'

1 Ответ

1 голос
/ 03 мая 2019

Решение, которое я окончательно выбрал, заключается в использовании настраиваемого заголовка, предложенного @RichardSmith.Но было неуместно использовать другое имя, потому что мой loadbalancer переопределяет заголовок X-Forwareded-For.

...