Linux+Nginx+SpringBoot+War环境下websocket部署遇到的问题
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部署遇到的问题相关推荐
- 在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 ...
- 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的
在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...
- Linux环境下Tomcat部署Solr4.x
Linux环境下Tomcat部署Solr 最近接手了公司搜索相关的业务,由于其使用的是Solr,故趁着周末自己鼓捣下; 由于业务上使用的是Solr4.2.0版本,因此在学习时,使用相对较老的版本Sol ...
- linux环境下编译部署php生产环境
linux环境下编译部署php生产环境 版本控制 php:7.2.4 nginx:1.9.9 部分插件版本 xlswriter:1.3.3.2 redis:3.1.3 一.安装php 1.安装依赖(之 ...
- 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 ...
- 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 ...
- Nginx在Linux(centos7)环境下的下载与安装
Nginx在Linux(centos7)环境下的下载与安装 一.下载Nginx 1.免费的开源版本官方网址 2.选择需要下载的版本 二.安装Nginx 1.安装前准备(需要安装相关依赖库) 2.安装N ...
- centos 启动一个redis_linux环境下安装部署redis服务器
概述 Redis是Remote Dictionary Server的缩写.他本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库.今天把之前在生产环境下安装部署redis的 ...
- Sonar Qube连续代码质量管理(二)Sonar Qube7.6在Windows环境下安装部署和服务启停
继续上篇内容,对Sonar Qube7.6在Windows 10环境下安装部署操作步骤进行分解,后期将会考虑在Linux上部署. 一.启动服务 进入到D:\DevelopSoft\Sonar\sona ...
- Sonar Qube连续代码质量管理(三)sonar-scanner-3.3.0.1492在Windows环境下安装部署和代码检查使用
继续上篇内容,对sonar-scanner在Windows 10环境下安装部署操作步骤进行分解,安装过程相对较简单,并且作为sonar客户端通常都是安装在开发设备上,后期一般不会考虑在Linux上部署 ...
最新文章
- 3000 字推荐一个可视化神器,50 行 Python 代码制作数据大屏
- PDF发明者逝世,曾因学生建议转行计算机,享年81岁
- Linux:vim环境设置
- NOJ——1672剪绳子(博弈)
- WPF Calendar 日历控件 样式自定义
- sqlserver 安装共享功能什么意思_科普:网格屏是什么意思?LED网格屏怎么安装...
- php 发送会议邮件,php – 为什么Outlook想删除以编程方式发送的当前会议邀请?...
- Java的应用领域有哪些呢?分享这几个
- (十三)Hibernate高级配置
- onvif学习笔记4:Windows环境使用gsoap生成onvif框架代码
- ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
- c语言双向链表实现航班系统,双向链表C语言实现
- 使用javap分析Java的字符串操作 1
- 差值多项式的余项定理
- 外贸客户类型及跟进策略、找客户渠道
- Photoshop插件-动作相关概念-ActionList-ActionDescriptor-ActionList-动作执行加载调用删除-PS插件开发
- HTML基本结构及基本标签
- WASCE (基于geronimo ) 配置
- 【转】slideUp() 和slideDown() 如何解决反复抖动的问题
- 【PM杂谈】我理解的项目管理