应用程序负载平衡器AWS(Flask&Socket.io)出现400握手错误

运行Socket.io的flask应用程序在POST请求中遇到400个握手错误,但我已根据在线阅读的文档和帖子在NGINX的配置中添加了该消息。我在AWS中使用应用程序负载平衡器,并设置了:80目标组和:443侦听器,该侦听器转发到目标组。我还为/socket.io路由添加了一条规则,以将请求转发到:80上的目标组,并在目标组中启用了粘性会话。我还使用了Route53域名并强制实施SSL,除了套接字通信之外,其他一切都正常。

NGINX conf文件:

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;
}
}

与socket.io的js文件连接:

var socket = io();
socket.on('connect',() => {
console.log(socket.connected); // true
});

连接返回true。

Listener Rule

更新

切换到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"
youlan01 回答:应用程序负载平衡器AWS(Flask&Socket.io)出现400握手错误

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3155496.html

大家都在问