Получение 400 рукопожатия при запросах POST к моему приложению Flask, работающему с socket.io, но я добавил в конфиги для NGINX в соответствии с документами и сообщениями, которые я читаю онлайн. Я использую Application Load Balancer в AWS и установил целевую группу: 80 и прослушиватель: 443, который перенаправляет в целевую группу. Я также добавил правило для маршрута /socket.io для пересылки запроса в целевую группу по адресу: 80 и включил липкие сеансы в целевой группе. Я также использую доменное имя Route53 и применяю SSL. Все работает нормально, кроме сокетов.
Файл conf NGINX:
server {
listen [::]:80;
listen 80;
server_name _domain_name_;
access_log /var/log/nginx/access.log;
location / {
proxy_pass http://127.0.0.1:8000;
include proxy_params;
}
location /socket.io {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
include proxy_params;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://127.0.0.1:8000/socket.io;
}
}
И подключение файла js для socket.io:
var socket = io();
socket.on('connect', () => {
console.log(socket.connected); // true
});
Connection возвращает true.
Правило слушателя
ОБНОВЛЕНИЕ
Переключен на NLB, и я по-прежнемувозникли те же проблемы, но теперь в моих журналах NGINX я вижу
connect() failed (111: Connection refused) while connecting to upstream
request: "GET /socket.io/?EIO=3&transport=polling&t=MvDPJhb HTTP/1.1",
upstream: "http://127.0.0.1:8000/socket.io/?
EIO=3&transport=polling&t=MvDPJhb"