Настроить правило TCP → Proxy
Чтобы видеть реальные IP-адреса клиентов, которые обращаются к балансировщику нагрузки, можно создать правило TCP → Proxy и использовать Proxy Protocol. Информация о клиентах добавится в заголовок соединения.
- Для HTTP
- Для HTTPS
Создайте балансировщик нагрузки. При настройке правила балансировщика нагрузки укажите:
- протокол для балансировщика нагрузки — TCP;
- порт для балансировщика нагрузки — 80;
- протокол для серверов — PROXY;
- порт для серверов — 80.
Подключитесь к облачному серверу из правила.
Установите и настройте nginx:
apt update
apt install nginx
systemctl start nginxОткройте конфигурационный файл
nginx.conf
на облачном сервере:nano /etc/nginx/nginx.conf
Включите поддержку директивы
proxy_protocol
— добавьте секциюserver
в блокеhttp
:http {
...
server {
server_name localhost;
listen 80 default_server proxy_protocol;
set_real_ip_from <amphora_ip_address>;
real_ip_header proxy_protocol;
root /usr/share/nginx/html;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ /\.ht {
deny all;
}
}
}Укажите
<amphora_ip_address>
— IP-адрес балансировщика нагрузки, например192.168.0.3
. Можно посмотреть в панели управления в разделе Облачная платформа → Балансировщики → страница балансировщика нагрузки. Используется как доверенный адрес — подробнее о директиве set_real_ip_from в документации nginx;Убедитесь, что в конфигурационном файле
nginx.conf
удалена или закомментирована директиваinclude /etc/nginx/sites-enabled/;*
. Если это невозможно сделать, используйте пример из предыдущего шага и измените файлы в директории/etc/nginx/sites-enabled/
Создайте балансировщик нагрузки. При настройке правила балансировщика нагрузки укажите:
- протокол для балансировщика нагрузки — TCP;
- порт для балансировщика нагрузки — 443;
- протокол для серверов — PROXY;
- порт для серверов — 443.
Подключитесь к облачному серверу из правила.
Установите и настройте nginx:
apt update
apt install nginx
systemctl start nginxОткройте конфигурационный файл
nginx.conf
на облачном сервере:nano /etc/nginx/nginx.conf
Включите поддержку директивы
proxy_protocol
.Пример nginx.conf:
...
server {
server_name localhost;
listen 443 ssl default_server proxy_protocol;
ssl_certificate /etc/nginx/ssl/public.example.com.pem;
ssl_certificate_key /etc/nginx/ssl/public.example.com.key;
set_real_ip_from <amphora_ip_address>;
real_ip_header proxy_protocol;
root /usr/share/nginx/html;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ /\.ht {
deny all;
}
}Укажите
<amphora_ip_address>
— IP-адрес балансировщика нагрузки, например192.168.0.3
. Можно посмотреть в панели управления в разделе Облачная платформа → Балансировщики → страница балансировщика нагрузки. Используется как доверенный адрес — подробнее о директиве set_real_ip_from в документации nginx.