Чтобы настроить NGINX так, чтобы он отображал настоящий IP-адрес клиента при работе за NAT, вам нужно использовать заголовки, которые передают IP-адреса. Обычно, при проксировании запросов через NAT или обратные прокси, настоящий IP-адрес клиента передается в заголовке HTTP.
Следуйте этим шагам:
1. **Проверьте настройки NAT и проксирования**: Убедитесь, что ваш NAT или маршрутизатор правильно перенаправляет внешние IP-адреса в локальную подсеть. Это может зависеть от конфигурации вашего маршрутизатора или файрвола.
2. **Настройте NGINX для работы с заголовками `X-Forwarded-For`**:
Вам нужно настроить обработку заголовков, чтобы извлекать настоящий IP-адрес клиента. В конфигурационном файле `nginx.conf` или в конкретном серверном блоке добавьте следующее:
```nginx
# Внутри server блока
set_real_ip_from хостовая_машина_IP; # IP-адрес вашей хостовой машины
real_ip_header X-Forwarded-For; # Заголовок, содержащий настоящий IP-адрес клиента
```
Если ваш веб-сервер находится за несколькими уровнями NAT или прокси-серверов, вы можете добавить несколько строк `set_real_ip_from`, чтобы учесть эти ситуации.
3. **Добавьте логирование IP-адресов**:
В конфигурации NGINX укажите формат логирования, чтобы отображать IP-адреса клиентов:
```nginx
log_format custom '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log custom;
```
4. **Перезапустите NGINX**:
После внесения изменений в конфигурацию не забудьте перезапустить NGINX, чтобы они вступили в силу:
```bash
sudo systemctl restart nginx
```
5. **Проверьте ваши логи**:
После перезапуска NGINX проверьте, стали ли в логах отображаться настоящие IP-адреса клиентов.
Этот подход должен помочь вам правильно настроить NGINX для отображения настоящих IP-адресов клиентов, даже если сервер находится за NAT или работает с прокси-сервером.