Frod

01.10.2026

nginx wss proxy

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

Настройка nginx wss proxy: как безопасно и быстро проксировать WebSocket-соединения

В современном мире веб-приложений всё большее значение приобретает использование WebSocket — протокола для обмена данными в реальном времени. От чатов и онлайн-игр до систем мониторинга — зачастую именно WebSocket обеспечивает мгновенную коммуникацию между клиентом и сервером. Но что делать, если ваш сервер находится за nginx, а соединения требуют безопасного проксирования через WSS (WebSocket Secure)? В этом случае на помощь приходит nginx в роли прокси-сервера с поддержкой WSS.

В этой статье я расскажу, как настроить nginx для proxy WebSocket с использованием WSS, что важно для безопасности и производительности. Вы узнаете, как правильно конфигурировать nginx, чтобы обеспечить стабильную работу и защиту данных.


Почему важно правильно настроить nginx wss proxy?

WebSocket — это протокол, который держит соединение открытым, позволяя обмениваться данными без постоянных запросов-ответов. Для защиты данных используют WSS — WebSocket по HTTPS, который шифрует трафик, обеспечивая безопасность.

Если ваш сервер работает за nginx, важно правильно настроить проксирование WebSocket, чтобы:

  • Обеспечить стабильное соединение;
  • Поддерживать безопасность с помощью SSL/TLS;
  • Не терять сообщения при передаче;
  • Не возникало проблем с кросс-доменными запросами (CORS).

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

  1. Получите SSL-сертификат

Для безопасного соединения нужен SSL-сертификат. Можно использовать бесплатные решения, например, Let's Encrypt, или приобрести платный сертификат для повышенной уверенности.

  1. Настройка nginx как WebSocket proxy

Пример конфигурации nginx, которая проксирует WebSocket соединения:

server {
 listen 443 ssl;
 server_name yourdomain.ru;

 ssl_certificate /path/to/fullchain.pem;
 ssl_certificate_key /path/to/privkey.pem;

 location /ws/ {
 proxy_pass http://127.0.0.1:8080/;
 proxy_http_version 1.1;

 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "Upgrade";

 proxy_set_header Host $host;

 # Передача заголовков для WebSocket
 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;

 # Опции для поддержания WebSocket соединения
 proxy_read_timeout 86400;
 proxy_send_timeout 86400;
 }
}
  1. Важные моменты
  • proxy_set_header Upgrade $http_upgrade; и proxy_set_header Connection "Upgrade"; обязательны для поддержки WebSocket.
  • proxy_http_version 1.1; — версия HTTP, необходимая для WebSocket.
  • proxy_read_timeout и proxy_send_timeout увеличены, чтобы соединение не прерывалось.

Проверка и тестирование

После настройки необходимо проверить, что WebSocket работает через nginx:

  • Используйте инструменты, например, Chrome DevTools или специальные тестеры WebSocket.
  • Проверьте, что соединение устанавливается по wss://yourdomain.ru/ws/.
  • Убедитесь, что сертификат активен и не вызывает ошибок безопасности.

Важные советы и рекомендации

  • Обновляйте nginx до актуальной версии, чтобы использовать все возможности и исправления.
  • Используйте автоматическую настройку SSL через Let's Encrypt — это безопасно и удобно.
  • Настраивайте CORS при необходимости, чтобы разрешить доступ с нужных доменов.
  • Планируйте масштабирование WebSocket-сервисов при росте трафика.

Итог

Настройка nginx wss proxy — это несложно, если знать ключевые моменты: правильно проксировать заголовки, установить SSL и обеспечить стабильное соединение. Такой подход гарантирует безопасность и высокую производительность ваших WebSocket-приложений.

Если у вас остались вопросы или нужен пример под конкретные условия — пишите, помогу настроить всё быстро и профессионально.