12.10.2026
nginx tcp proxy
Настройка NGINX как TCP-прокси: пошаговое руководство для российских ИТ-специалистов
Когда речь заходит о балансировке нагрузки и обеспечении безопасности сетевых сервисов, nginx давно зарекомендовал себя как универсальный и надежный инструмент. Особенно актуально это для тех, кто работает с протоколом TCP — будь то игровые серверы, базы данных или другие критически важные системы. В этой статье мы подробно расскажем, как настроить nginx в роли TCP-прокси, чтобы обеспечить стабильную работу вашего инфраструктурного стека.
Почему именно nginx для TCP-прокси?
Несмотря на то, что nginx изначально проектировался как веб-сервер и reverse proxy для HTTP/HTTPS, последние версии включили поддержку TCP и UDP через модуль stream. Это делает nginx отличным решением для организации проксирования TCP-трафика без необходимости устанавливать дополнительные дорогостоящие решения.
Плюсы использования nginx в роли TCP-прокси:
- Высокая производительность и низкая задержка
- Простая интеграция с существующей инфраструктурой
- Наличие расширенных настроек безопасности и логирования
- Возможность балансировки нагрузки и отказоустойчивости
Как настроить nginx как TCP-прокси: пошаговая инструкция
- Установка nginx с поддержкой stream
Для начала убедитесь, что у вас установлен nginx с модулем stream. В большинстве случае рекомендуется собирать nginx самостоятельно или использовать официальные репозитории, в которых поддерживается эта опция.
sudo apt update
sudo apt install nginx
Если у вас уже есть nginx, проверьте наличие модуля stream командой:
nginx -V 2>&1 | grep --color=auto stream
Если модуль отсутствует, потребуется пересобрать nginx с флагом --with-stream.
- Настройка конфигурационного файла nginx
Основные изменения в конфигурации касаются блока stream. В файле /etc/nginx/nginx.conf или в отдельном файле конфигурации, подключаемом через include, добавьте следующий пример:
stream {
upstream backend_tcp {
server 192.168.1.100:3306;
server 192.168.1.101:3306;
}
server {
listen 12345;
proxy_pass backend_tcp;
proxy_timeout 30s;
proxy_connect_timeout 5s;
}
}
Здесь:
- upstream backend_tcp — список серверов, к которым nginx будет проксировать TCP-трафик.
- listen 12345 — порт, на котором nginx будет слушать входящие соединения.
- proxy_pass backend_tcp — направление трафика к бэкендам.
- Проверка и перезапуск nginx
После внесения изменений проверьте конфигурацию командой:
nginx -t
Если ошибок нет, перезапустите nginx:
sudo systemctl restart nginx
Теперь nginx работает как TCP-прокси, перенаправляя трафик на указанные серверы.
Важные советы и нюансы
- Балансировка нагрузки: Используйте
least_connилиip_hash, чтобы распределять трафик равномерно и избегать перегрузки отдельных серверов. - Безопасность: Настройте firewall и используйте TLS (через TCP TLS passthrough) для защиты данных.
- Логирование: Включите расширенное логирование для мониторинга и быстрого реагирования на инциденты.
Итог
Настройка nginx в роли TCP-прокси — это мощное решение для российских ИТ-специалистов, желающих объединить производительность, безопасность и управляемость в своей инфраструктуре. Следуя этим простым шагам, вы легко обеспечите стабильную работу критичных сервисов и повысите отказоустойчивость системы.