Frod

13.10.2026

nginx websocket proxy

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

Настройка nginx websocket proxy: шаг за шагом

Если вы работаете с реальными временами, например, для чатов, онлайн-игр или систем уведомлений, то websocket — ваш надежный помощник. Но как обеспечить стабильную работу websocket-соединений на вашем сервере? Тут на помощь приходит nginx — мощный и гибкий веб-сервер, который отлично справляется с ролью прокси для websocket.

В этой статье расскажу, как настроить nginx websocket proxy так, чтобы соединения были быстрыми, надежными и безопасными.

Почему именно nginx для websocket?

Nginx — это не только статический сервер или балансировщик нагрузки. Он отлично работает с протоколом WebSocket, умеет удерживать соединения живыми и правильно их проксировать. Это важно, потому что websocket — это «держи соединение открытым», и любой неправильный прокси может привести к разрывам связи.

Основные шаги настройки nginx websocket proxy

  1. Обновите nginx до последней версии

Для корректной работы websocket убедитесь, что у вас установлена версия nginx 1.3 или выше, поскольку именно в этих версиях появилась поддержка протокола websocket.

nginx -v

Если версия ниже, обновите nginx через менеджер пакетов или соберите из исходников.

  1. Настройка конфигурационного файла nginx

Добавьте следующий блок в ваш конфигурационный файл (обычно /etc/nginx/nginx.conf или /etc/nginx/conf.d/your_site.conf):

server {
 listen 80;
 server_name yourdomain.ru;

 location /ws/ {
 proxy_pass http://127.0.0.1:8080/; # Адрес вашего websocket-сервера
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "Upgrade";

 # Передача заголовков для корректной работы websocket
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;

 # Опционально: таймауты и буферы
 proxy_read_timeout 86400;
 proxy_send_timeout 86400;
 proxy_buffering off;
 }
}

Объяснение ключевых директив:

  • proxy_set_header Upgrade и Connection "Upgrade" — обязательные для установления websocket соединения.
  • proxy_http_version 1.1 — версия HTTP, необходимая для websocket.
  • proxy_read_timeout — чтобы соединение не разрывалось при долгих сессиях.
  1. Перезапуск nginx

После внесения изменений перезапустите nginx:

sudo systemctl restart nginx

или

sudo service nginx restart

Проверка работы

Чтобы проверить, что websocket корректно проксируется, используйте инструменты вроде Chrome DevTools или специализированные клиенты websocket. Убедитесь, что соединение устанавливается и передает данные.

Советы по безопасности и оптимизации

  • Включите SSL для защиты данных, передаваемых по websocket (wss://).
  • Настройте ограничения по количеству соединений и тайм-аутам.
  • Используйте firewall, чтобы ограничить доступ к websocket-серверу.

Итог

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

Если у вас остались вопросы или возникли сложности — обращайтесь к профессионалам или ищите дополнительную информацию на профильных форумах.