💣 Как настроить Nginx для работы с соединениями WebSocket (wss://) |

💣 Как настроить Nginx для работы с соединениями WebSocket (wss://)

Мануал

Если вашему приложению необходимо предоставлять обновления в режиме реального времени, например, уведомления или функции чата, оно может использовать WebSockets.

Чтобы убедиться, что ваш сервер Nginx может обрабатывать эти WebSocket-соединения, необходимо правильно его настроить.

Продолжение статьи:

🖧 Как настроить Apache на проксирование запросов WebSocket (wss://)

Это руководство покажет вам, как сделать это шаг за шагом.

У меня есть приложение, работающее на https://example.com, и оно использует WebSockets для обновлений в реальном времени.

Соединения WebSocket выглядят так: wss://example.com/live-updates.

Чтобы обеспечить бесперебойную работу этих соединений, вам нужно настроить конфигурацию Nginx.

Шаг 1: Включите поддержку WebSocket в Nginx

Nginx поддерживает WebSockets нативно, поэтому вам не нужно устанавливать дополнительные модули.

Однако вам необходимо убедиться, что ваша конфигурация позволяет трафику WebSocket проходить через ваш внутренний сервер.

Шаг 2: Настройте блок сервера Nginx

Откройте файл конфигурации Nginx, который обычно находится по адресу /etc/nginx/sites-available/default или /etc/nginx/nginx.conf.

Добавьте следующую конфигурацию в ваш серверный блок:

server {
    listen 80;
    server_name example.com;

    # Other configurations (like root, index, etc.)

    location /live-updates {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }

    location / {
        proxy_pass http://localhost:3000;
        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_pass: Перенаправляет WebSocket-запросы на внутренний сервер, работающий на localhost:3000.
proxy_http_version 1.1: Убеждается, что используемая версия HTTP равна 1.1, что необходимо для WebSockets.
proxy_set_header Upgrade $http_upgrade и proxy_set_header Connection «upgrade»: Эти заголовки необходимы для обновления соединения до WebSocket.

Шаг 3: Перезапустите Nginx

После внесения изменений необходимо перезапустить Nginx, чтобы применить новую конфигурацию.

Выполните следующую команду:

sudo systemctl restart nginx

Заключение

Выполнив эти простые шаги, вы сможете настроить Nginx на обработку соединений WebSocket для вашего приложения.

Это гарантирует, что ваши функции реального времени, такие как обновления в реальном времени или чат, будут работать плавно и без проблем.

Правильная настройка позволит Nginx эффективно управлять как WebSocket, так и обычным HTTP-трафиком.

см. также:

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий