nginx转发websocket 报400错误

最近项目中使用到了 websocket ,开发环境中,使用的是webpack代理:

   proxy:{

        '/websocket': {

                    target:'https://xxxx',  // websock接口转发

                    changeOrigin:true,

        },

     }

代码打包后发布到测试环境,发现控制台关于websocket的接口都报400错误。了解之后找到原因:

400 Bad Request 是一种 HTTP 错误状态码。HTTP/1.1 对 400 Bad Request的定义主要是:

1.语义有误,当前请求无法被服务器理解

2.请求参数有误

3.丢包导致异常

解决方法 :nginx 配置内容修改成:

location ~ /websocket {

    proxy_pass https://xxxx;

    proxy_set_header Host $host;

    proxy_http_version1.1;

    proxy_set_header X-Client-IP $remote_addr;

    proxy_set_header Upgrade $http_upgrade;

    proxy_set_header Connection"upgrade";

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;

    proxy_connect_timeout60;

    proxy_read_timeout600;

}

你可能感兴趣的:(nginx转发websocket 报400错误)