Frod

12.10.2026

nginx tcp proxy

Frod — свобода без границ

Настройка NGINX как TCP-прокси: пошаговое руководство для российских ИТ-специалистов

Когда речь заходит о балансировке нагрузки и обеспечении безопасности сетевых сервисов, nginx давно зарекомендовал себя как универсальный и надежный инструмент. Особенно актуально это для тех, кто работает с протоколом TCP — будь то игровые серверы, базы данных или другие критически важные системы. В этой статье мы подробно расскажем, как настроить nginx в роли TCP-прокси, чтобы обеспечить стабильную работу вашего инфраструктурного стека.

Почему именно nginx для TCP-прокси?

Несмотря на то, что nginx изначально проектировался как веб-сервер и reverse proxy для HTTP/HTTPS, последние версии включили поддержку TCP и UDP через модуль stream. Это делает nginx отличным решением для организации проксирования TCP-трафика без необходимости устанавливать дополнительные дорогостоящие решения.

Плюсы использования nginx в роли TCP-прокси:
- Высокая производительность и низкая задержка
- Простая интеграция с существующей инфраструктурой
- Наличие расширенных настроек безопасности и логирования
- Возможность балансировки нагрузки и отказоустойчивости

Как настроить nginx как TCP-прокси: пошаговая инструкция

  1. Установка 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.

  1. Настройка конфигурационного файла 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 — направление трафика к бэкендам.

  1. Проверка и перезапуск nginx

После внесения изменений проверьте конфигурацию командой:

nginx -t

Если ошибок нет, перезапустите nginx:

sudo systemctl restart nginx

Теперь nginx работает как TCP-прокси, перенаправляя трафик на указанные серверы.

Важные советы и нюансы

  • Балансировка нагрузки: Используйте least_conn или ip_hash, чтобы распределять трафик равномерно и избегать перегрузки отдельных серверов.
  • Безопасность: Настройте firewall и используйте TLS (через TCP TLS passthrough) для защиты данных.
  • Логирование: Включите расширенное логирование для мониторинга и быстрого реагирования на инциденты.

Итог

Настройка nginx в роли TCP-прокси — это мощное решение для российских ИТ-специалистов, желающих объединить производительность, безопасность и управляемость в своей инфраструктуре. Следуя этим простым шагам, вы легко обеспечите стабильную работу критичных сервисов и повысите отказоустойчивость системы.