express: Как получить IP-адрес клиента вместо docker IP при использовании nginx в качестве обратного прокси? - PullRequest
0 голосов
/ 07 мая 2020

Я сделал простой сервер express, подключил его и использовал nginx в качестве обратного прокси. поэтому, когда я нажимаю localhost, он перенаправляется на localhost:3000.

вот nginx config

server {
 server_name 103.204.85.12;
location / {
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://localhost:3000; #port where you are serving your express app.
  }
}

, и я отправляю ip как json, я читаю ip таким образом:

const ip = req.headers["x-forwarded-for"] || req.connection.remoteAddress;

Но проблема в том, что я получаю 172.22.0.1, когда просматриваю localhost: 3000 Я получаю '127.0.0.1', когда просматриваю nginx порт (localhost)

почему они разные? как я могу добиться того же ip (localhost вместо dockerip)? и когда я размещаю приложение на сервере, мне нужен фактический IP-адрес клиента вместо этого dockerip.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...