Я сделал простой сервер 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.