Чтобы настроить HTTPS-прокси-сервер на NGINX так, чтобы серверная часть могла видеть реальный IP-адрес клиента, вам нужно правильно передавать заголовки `X-Real-IP` и `X-Forwarded-For`, как вы уже начали делать в вашем конфигурационном фрагменте. Однако для полной конфигурации важно удостовериться, что серверная часть (backend) правильно обрабатывает эти заголовки.
Вот несколько шагов для реализации этой задачи:
### 1. Настройка NGINX как обратного прокси
Ваш текущий конфигурационный файл имеет правильные строки для передачи информации о клиенте. Убедитесь, что он завершён корректно и выглядит примерно так:
```nginx
server {
listen 443 ssl;
server_name sd-info.ru www.site1.ru;
access_log /var/log/nginx/site1.ru.access.log;
error_log /var/log/nginx/site1.ru.error.log notice;
ssl_certificate /etc/letsencrypt/live/site1.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/site1.ru/privkey.pem; # managed by Certbot
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'HIGH:!aNULL:!MD5:!3DES:!RC4';
location / {
proxy_pass https://192.168.88.111; # Ваш backend адрес
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; # Передача реального IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Добавляем IP
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_ssl_server_name on;
# Опционально, для поддержки WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
```
### 2. Настройка вашего backend-сервера
На стороне вашего backend-сервера (например, на Apache или NGINX) вам нужно убедиться, что он правильно обрабатывает заголовки, передаваемые от прокси:
#### Для NGINX как backend:
```nginx
http {
...
set_real_ip_from 192.168.88.1; # IP вашего NGINX-прокси
real_ip_header X-Forwarded-For;
real_ip_recursive on;
...
}
```
#### Для Apache как backend:
В конфигурации Apache можно использовать модуль `mod_remoteip`. Вам необходимо добавить следующее в конфигурацию вашего виртуального хоста:
```apache
<IfModule mod_remoteip.c>
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 192.168.88.1 # IP-адрес вашего NGINX-прокси
</IfModule>
```
### 3. Тестирование конфигурации
После внесения всех изменений перезапустите NGINX и ваш backend-сервер. Проверьте логи на наличие реальных IP-адресов клиентов:
- Для NGINX проверяйте файл `/var/log/nginx/site1.ru.access.log`.
- Для вашего backend-сервера проверьте соответствующий лог-файл.
### 4. Заключение
С учетом этих шагов настройка вашего HTTPS-прокси-сервера должна быть правильна и позволит вашему backend-серверу видеть реальные IP-адреса клиентов. Не забудьте протестировать все сценарии, чтобы убедиться в корректной работе системы в целом.