问题:

在Springboot中使用websocket时,本地开发环境可以正常运行,但部署到服务器环境出现404问题。

解决方案:

分析后发现,服务器环境与本地环境的主要区别是服务器上使用了nginx代理中转,需要进行以下配置,否则会报404错误。

server
    {
        listen       80;
        server_name api.xxx.com;
        location / {
                proxy_pass   http://127.0.0.1:8088;  #项目运行地址
                #websocket 主要配置
                proxy_connect_timeout 4s;
                proxy_read_timeout 7200s; #超过7200秒内没通讯则断开
                proxy_send_timeout 12s;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }
    }
 

配置完重启ngnix服务,运行正常了。以上完毕。