springboot项目中集成了websocket之后,本地测试正常,但是部署到服务器之后,容易遇到的几个问题。

本文指的服务器环境 为Linux+Nginx 其他环境可能不适用

问题一、pom文件的依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><scope>provided</scope></dependency>

如果打包方式是War,项目会由外部Tomcat管理,此时这个依赖是不需要的,因为Tomcat7以及7以上的版本对websocket是直接支持的。因此可以将作用域设置为provided,Tomcat 8以下的版本似乎会与此依赖冲突,8以及8以上不冲突(未严格测试过)。

问题二、ServerEndpointExporter@Bean

   @Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();
}

问题二与问题一的原因类似,在本地测试的时候,项目是Spring管理,因此需要ServerEndpointExporter这个bean,但通过War部署会将项目交给外部Tomcat管理,ServerEndpoint是需要Tomcat直接管理才能生效,ServerEndpointExporter @Bean的存在会导致管理权交接失败,项目无法启动。
所以部署之前,需要将bean ServerEndpointExporter注释掉,或者通过@Profile()设置为测试环境生效。

问题三、连接报404或者400
WebSocket connection to ‘ws://xxx:8080/xxx’ failed: Error during WebSocket handshake: Unexpected response code: 404
此问题是Nginx未开启websocket穿透支持导致。
需要在Nginx的配置文件中加入

location / {// 加入这三行proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";//
}

如果是在宝塔面板环境,则在此站点的配置文件中加入。
重启Nginx便可。

Linux+Nginx+SpringBoot+War环境下websocket部署遇到的问题相关推荐

  1. 在linux+nginx+mysql+php环境下安装 phpmyadmin

    环境 1, CentOS 7 2, nginx1.12.2 (Linux 利用yum源安装nginx) 3, php7.0 (Linux 利用yum源安装php7.0+nginx) 4, mysql5 ...

  2. 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的

    在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...

  3. Linux环境下Tomcat部署Solr4.x

    Linux环境下Tomcat部署Solr 最近接手了公司搜索相关的业务,由于其使用的是Solr,故趁着周末自己鼓捣下; 由于业务上使用的是Solr4.2.0版本,因此在学习时,使用相对较老的版本Sol ...

  4. linux环境下编译部署php生产环境

    linux环境下编译部署php生产环境 版本控制 php:7.2.4 nginx:1.9.9 部分插件版本 xlswriter:1.3.3.2 redis:3.1.3 一.安装php 1.安装依赖(之 ...

  5. linux nginx安装php5.5,linux下搭建LNMP(linux+nginx+mysql+php)环境之mysql5.5安装

    linux下搭建LNMP(linux+nginx+mysql+php)环境之mysql5.5安装: 首先安装依赖包: yum -y install gcc gcc-c++ autoconf libjp ...

  6. lnmp php 5.4,linux下搭建LNMP(linux+nginx+mysql+php)环境之php5.4安装

    安装准备:依赖包下载wget http://ah1.down.chinaz.com/201303/PHP-v5.4.13.tar.gz wget http://soft.7dot.com/soft/l ...

  7. Nginx在Linux(centos7)环境下的下载与安装

    Nginx在Linux(centos7)环境下的下载与安装 一.下载Nginx 1.免费的开源版本官方网址 2.选择需要下载的版本 二.安装Nginx 1.安装前准备(需要安装相关依赖库) 2.安装N ...

  8. centos 启动一个redis_linux环境下安装部署redis服务器

    概述 Redis是Remote Dictionary Server的缩写.他本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库.今天把之前在生产环境下安装部署redis的 ...

  9. Sonar Qube连续代码质量管理(二)Sonar Qube7.6在Windows环境下安装部署和服务启停

    继续上篇内容,对Sonar Qube7.6在Windows 10环境下安装部署操作步骤进行分解,后期将会考虑在Linux上部署. 一.启动服务 进入到D:\DevelopSoft\Sonar\sona ...

  10. Sonar Qube连续代码质量管理(三)sonar-scanner-3.3.0.1492在Windows环境下安装部署和代码检查使用

    继续上篇内容,对sonar-scanner在Windows 10环境下安装部署操作步骤进行分解,安装过程相对较简单,并且作为sonar客户端通常都是安装在开发设备上,后期一般不会考虑在Linux上部署 ...

最新文章

  1. 3000 字推荐一个可视化神器,50 行 Python 代码制作数据大屏
  2. PDF发明者逝世,曾因学生建议转行计算机,享年81岁
  3. Linux:vim环境设置
  4. NOJ——1672剪绳子(博弈)
  5. WPF Calendar 日历控件 样式自定义
  6. sqlserver 安装共享功能什么意思_科普:网格屏是什么意思?LED网格屏怎么安装...
  7. php 发送会议邮件,php – 为什么Outlook想删除以编程方式发送的当前会议邀请?...
  8. Java的应用领域有哪些呢?分享这几个
  9. (十三)Hibernate高级配置
  10. onvif学习笔记4:Windows环境使用gsoap生成onvif框架代码
  11. ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
  12. c语言双向链表实现航班系统,双向链表C语言实现
  13. 使用javap分析Java的字符串操作 1
  14. 差值多项式的余项定理
  15. 外贸客户类型及跟进策略、找客户渠道
  16. Photoshop插件-动作相关概念-ActionList-ActionDescriptor-ActionList-动作执行加载调用删除-PS插件开发
  17. HTML基本结构及基本标签
  18. WASCE (基于geronimo ) 配置
  19. 【转】slideUp() 和slideDown() 如何解决反复抖动的问题
  20. 【PM杂谈】我理解的项目管理

热门文章

  1. 卡方拟合优度检验怎么做?
  2. Win7下用的XP虚拟机
  3. CAUSALITY FOR MACHINE LEARNING
  4. 非常好的油画制作软件ArtRage.v2.11
  5. 继电保护原理2-距离保护
  6. Mac_苹果电脑设置眼睛保护色
  7. Java正则表达式【详解】
  8. 「运维有小邓」AD域管理软件——ADManager Plus介绍
  9. Eucalyptus云服务平台
  10. IIC协议超详细解释(适合小白入门)