Перенаправить веб-сокет на веб-сокет

Я использую nginx в качестве обратного прокси-сервера для django и React с конфигурацией

worker_processes  1;
events {
    worker_connections  1024;
}
http{
    server{
        include mime.types;
        default_type application/octet-stream;
        keepalive_timeout  240;
        sendfile on;
        listen 8001;
        server_name 127.0.0.1;

        location /{
            proxy_pass http://localhost:3000;
        }

        location /backend {
                proxy_pass http://127.0.0.1:8000;
        }   
 }
}

он работает нормально, но я хочу перенаправить веб-сокет для реагирования на горячую загрузку. у меня до сих пор нет решения после большого количества поисковых запросов. в настоящее время у него есть ошибка подключения, как с консоли chrome

WebSocket connection to 'ws://127.0.0.1:8001/sockjs-node' failed: Error during WebSocket handshake: Unexpected response code: 404
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
0
0
196
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

из-за директивы http я думал, что он не будет поддерживать переадресацию прокси-сервера WebSocket, но потратив больше времени на Google. я знаю, что http обновляется до Websocket после первоначального рукопожатия Итак, наконец, решение здесь

у меня он работал как прямой прокси-сервер для Django в качестве бэкэнда и реагировал как внешний интерфейс. поэтому я могу решить проблему CORS из-за того, что сервер находится на другом IP-адресе и небезопасен, поэтому настройка заголовка не поддерживает совместное использование файлов cookie.

worker_processes  1;
events {
    worker_connections  1024;
}
http{
    client_max_body_size 100M;
    server{
        include mime.types;
        default_type application/octet-stream;
        keepalive_timeout  240;
        sendfile on;
        listen 8001;
        server_name 127.0.0.1;

        location /{
            proxy_pass http://localhost:3000;
        }

        location /backend {
                proxy_pass http://127.0.0.1:8000;
        }   
        location /sockjs-node {
            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;
        }
 }
}


Другие вопросы по теме