Frod

23.07.2026

nginx wss proxy

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

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

В современном мире веб-приложений всё больше используют WebSocket — протокол, обеспечивающий постоянное двунаправленное соединение между клиентом и сервером. Чтобы обеспечить безопасность и стабильность таких соединений, часто используют проксирование через nginx. В этой статье я расскажу, как правильно настроить nginx в качестве wss proxy, чтобы ваши WebSocket-соединения были надежными и защищенными.

Почему важен nginx wss proxy?

WebSocket (ws или wss) — это технология, позволяющая обмениваться данными в реальном времени. В режиме wss (WebSocket Secure) соединение шифруется с помощью TLS, что делает его безопасным для передачи конфиденциальной информации.

Однако напрямую открывать порты для WebSocket не всегда удобно или безопасно. Тут на помощь приходит nginx — популярный HTTP-сервер и reverse proxy, который может выступать в роли промежуточного звена, обеспечивающего безопасность, балансировку нагрузки и управление трафиком.

Что такое nginx wss proxy?

Это настройка nginx для проксирования WebSocket соединений по протоколу wss. Благодаря ей, все входящие запросы на определенный адрес будут перенаправлены на ваш сервер WebSocket, сохраняя при этом безопасность и стабильность.

Как настроить nginx в качестве wss proxy?

Вот пошаговая инструкция:

  1. Установите nginx с поддержкой SSL

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

sudo apt update
sudo apt install nginx
  1. Получите SSL-сертификат

Для безопасных соединений рекомендуется использовать бесплатные сертификаты от Let's Encrypt.

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.ru

Следуйте инструкциям для автоматической настройки.

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

Откройте файл конфигурации сайта, например:

sudo nano /etc/nginx/sites-available/yourdomain.ru

Добавьте следующий блок:

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://localhost:8080/; # ваш WebSocket-сервер
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;

        # Для WebSocket
        proxy_read_timeout 86400;
        proxy_send_timeout 86400;
    }
}

Обратите внимание, что:

  • proxy_pass указывает на ваш сервер WebSocket, который работает на localhost:8080.
  • Заголовки Upgrade и Connection необходимы для поддержки WebSocket.
  • Параметры таймаутов позволяют поддерживать долгое подключение.
  1. Перезагрузите nginx
sudo nginx -t
sudo systemctl reload nginx

Теперь ваши WebSocket соединения по адресу wss://yourdomain.ru/ws/ будут проксироваться через nginx.

Важные моменты

  • Убедитесь, что ваш WebSocket-сервер слушает на localhost или внутреннем IP.
  • Используйте актуальные SSL-сертификаты для защиты данных.
  • Настройте брандмауэр так, чтобы порты 443 и 80 были открыты.

Итог

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

Если у вас возникнут вопросы или потребуется помощь — пишите в комментариях. Удачи в настройке!