Skip to content
生如风生如风
主页
github icon

    SpringBoot + Websocket项目部署服务器访问出错

    author icon生如风calendar icon2020年4月24日category icon
    • SpringBoot
    • Websocket
    tag icon
    • SpringBoot
    • Websocket
    timer icon大约 1 分钟

    记录最近两天在本地搭建简单的springboot + websocket遇到的问题。

    本地搭建正常运行,可以连接websocket,但是部署服务器后,会报错,无法连接。

    Error during WebSocket handshake: Unexpected response code: 400 还是502错误来着。经过测试,发现在连接上出错

    wss:连接 报错。最后在nginx配置上发现错误。正确配置如下:

    #websocket
    location /websocket {
        proxy_pass http://127.0.0.1:2001;
        proxy_http_version 1.1;    #websoket必须要使用的协议,http 1.1
        proxy_set_header Upgrade $http_upgrade;  #要使用websocket协议时,响应http升级请求
        proxy_set_header Connection "upgrade";
    }
    
    1
    2
    3
    4
    5
    6
    7

    这时候可以正常联通websocket。

    另外,如果使用的是独立的Tomcat,那么要将如下Bean注释掉,该bean会使用springboot内部的tomcat

    @Configuration
    public class WebSocketConfig {
        /**
         * 注入ServerEndpointExporter,
         * 这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint
         * @return
         */
        @Bean
        public ServerEndpointExporter serverEndpointExporter() {
            return new ServerEndpointExporter();
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    出错问题,可以从下面几点排查:

    1、防火墙是否有禁用相应端口。

    2、在配置好springboot+websocket后,不着急写网页去wss连接,可以百度搜索websocket在线测试工具,测试是否项目搭建成功,这样可以在最开始配置阶段知道是否成功,排查起来省力。

    3、重点查看nginx的配置是否正确。在配置完成后记得要重启Nginx。

    如果还存在问题,可以评论一起沟通学习。

    默认页脚
    Copyright © 2026 生如风