首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转发websocket到websocket

转发websocket到websocket
EN

Stack Overflow用户
提问于 2020-12-16 21:24:09
回答 1查看 72关注 0票数 0

我使用nginx作为django的反向代理,并使用配置进行反应

代码语言:javascript
复制
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;
        }   
 }
}

它工作得很好,但我想转发用于react热加载的websocket。在谷歌了很多次之后,我仍然没有解决的办法。目前它有连接错误,因为从chrome控制台

代码语言:javascript
复制
WebSocket connection to 'ws://127.0.0.1:8001/sockjs-node' failed: Error during WebSocket handshake: Unexpected response code: 404
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-26 01:38:00

由于http指令,我认为它不会支持转发WebSocket代理,但在谷歌上花了更多的时间。我知道http是在初始握手之后升级到Websocket的,所以最后的解决方案在这里。

它作为Django的转发代理作为后端,react作为前端。所以我可以通过CORS问题,由于服务器是在不同的IP和它的不安全,所以设置头不支持太多的cookie共享

代码语言:javascript
复制
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;
        }
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65324178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档