Я использую 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
из-за директивы 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;
}
}
}