- Изменены разделы документации для настройки NGINX Proxy Manager, добавлены инструкции для приложений, работающих на хосте. - Расширена логика получения IP-адреса клиента с учетом дополнительных заголовков и приоритетов, улучшая обработку запросов через прокси. - Добавлены альтернативные способы подключения для случаев, когда `host.docker.internal` не работает.
1.8 KiB
1.8 KiB
Быстрая настройка IP-адресов для nginx Proxy Manager
Ваша ситуация
- nginx Proxy Manager работает в Docker
- Ваше приложение NoteJS работает на хосте (не в Docker)
- IP-адрес всегда показывает 90.189.198.107 (IP прокси)
Быстрое решение
1. В nginx Proxy Manager
- Откройте настройки вашего прокси-хоста
- В разделе "Advanced" → "Custom Nginx Configuration" добавьте:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Client-IP $remote_addr;
2. В настройках прокси-хоста
- Forward Hostname/IP:
host.docker.internal - Forward Port:
3000
3. Проверка
Откройте в браузере: https://your-domain.com/api/debug/ip
Должно показать реальный IP-адрес клиента вместо 90.189.198.107.
4. Если не работает
-
Проверьте, что приложение слушает на всех интерфейсах:
netstat -tlnp | grep :3000 -
Если видите
127.0.0.1:3000, измените вserver.js:app.listen(PORT, "0.0.0.0", () => { console.log(`🚀 Сервер запущен на порту ${PORT}`); }); -
Перезапустите nginx Proxy Manager:
docker restart nginx-proxy-manager
Готово!
После этих настроек ваше приложение будет получать реальные IP-адреса клиентов.