Почему axios не отправляет IP-адрес клиента на сервер API?

Почему axios передает заголовок User-Agent, но не передает IP-адрес клиента, заместо него отправляя IP-адрес сервера? Как поправить настройки запроса, чтобы передавался IP-адрес клиента? В моем случае, на сервере next.js работает конфигурация nginx. Вот часть кода nginx и следующий за ним фрагмент кода на next.js, где формируются заголовки перед запросом.
  • 6 августа 2024 г. 15:03
Ответы на вопрос 2
axios не отправляет IP-адрес клиента на сервер API из-за того, что браузеры не предоставляют доступ к IP-адресу пользователя из JavaScript-кода. Это сделано из соображений безопасности и приватности пользователей.

Для передачи IP-адреса клиента на сервер API, вам нужно добавить его в заголовки запроса самостоятельно. Вы можете использовать библиотеку axios для этого путем добавления заголовка 'X-Client-IP' с IP-адресом пользователя.

В вашем случае, с использованием nginx и next.js, вы можете настроить nginx для передачи реального IP-адреса пользователя на сервер next.js. Для этого в конфигурации nginx добавьте следующую директиву:

```nginx
location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://localhost:3000;
}
```

Затем в коде на next.js вы можете получить переданный IP-адрес из заголовка 'X-Real-IP' и использовать его в вашем коде:

```javascript
const ip = req.headers['x-real-ip'];
console.log('Client IP address:', ip);
```

Таким образом, вы сможете передавать IP-адрес клиента на сервер API через nginx и использовать его в вашем приложении на next.js.
Разобрался и пол месяца не прошло или прошло уже =) 
Надо было в nginx добавить доверительный IP
set_real_ip_from IP_SERVER;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
Похожие вопросы