配置nginx+tomcat支持websocket
问题情景:
最近开发新增加一个项目,需要支持https wss协议
访问https://test.aa.com 使用nginx反向代理到后端tomcat web应用
访问https://test.aa.com/AAASService/websocket 反向代理到后端tomcat的websocket
一开始以为都是默认支持wss,就按照配置https协议配置了,后来发现行不通,在后端查看tomcat日志如下:
org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/AAASService/websocket/123456] in DispatcherServlet with name 'dispatcherServlet'
查看nginx日志访问状态返回
网上搜索了一圈终于找到原因:
1.websocket需要tomcat7.0以上才支持
2.nginx需要配置相应的参数
解决:
nginx配置:
location / { access_log /usr/local/nginx/log/qrcode.access.log main;
error_log /usr/local/nginx/log/qrcode.error.log warn; proxy_pass http://10.20.168.81:9090; }
location /QRMSService/websocket { access_log /usr/local/nginx/log/qrcode.access.log main;
error_log /usr/local/nginx/log/qrcode.error.log warn; proxy_pass http://10.20.168.81:9090/QRMSService/websocket;
proxy_set_header Upgrade $http_upgrade; #需要添加这两行配置,让nginx响应websocket请求
proxy_set_header Connection "upgrade"; proxy_connect_timeout 4s; #为了防止socket链接很快就断掉需要按照各自的需求配置如下三个参数
proxy_read_timeout 7200s;
proxy_send_timeout 12s; }
重新加载nginx 测试访问正常
配置nginx+tomcat支持websocket的更多相关文章
- Centos6.7配置Nginx+Tomcat简单整合
系统环境:Centos 6.7 软件环境:JDK-1.8.0_65.Nginx-1.10.3.Tomcat-8.5.8 文档环境:/opt/app/ 存放软件目录,至于mkdir创建文件就不用再说了 ...
- 配置 Nginx 反向代理 WebSocket
用Nginx给网站做反向代理和负载均衡是广泛使用的一种Web服务器部署技术.不仅能够保证后端服务器的隐蔽性,还可以提高网站部署灵活性. 今天我们来讲一下,如何用Nginx给WebSocket服务器实现 ...
- CentOS6.5 简单配置Nginx + tomcat
1.配置nginx.conf vi /usr/local/nginx/conf/nginx.conf --这是你的安装目录 注:红框地方为任意位置,server在配置文件中已存在 我使用的是两个tom ...
- linux下配置Nginx,支持thinkphp
前言引入 一个刚入行的朋友,刚换工作,入职了一个新公司.新公司一个php开发,就是他.俨然老板把他当成公司扛把子了,把服务器都给了他,让他部署整个php的开发环境.那个朋友是wamp爱好者.然后面对l ...
- 注意这几点,轻轻松松配置 Nginx + Tomcat 的集群和负载均衡
Tomcat 集群是当单台服务器达到性能瓶颈,通过横向扩展的方式提高整体系统性能的有效手段.Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,可以通过简单的配置实现 Tomcat 集群 ...
- Nginx配置反向代理支持WebSocket
http { #WebSocket代理配置 map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { ...
- 配置Nginx反向代理WebSocket,以代理noVNC为例
什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...
- linux下项目上线配置nginx+tomcat
nginx.conf server { listen 80; server_name www.examples.com; client_max_body_size 300m; #charset koi ...
- 配置Nginx来支持php
安装php7 下载地址:https://secure.php.net/downloads.php这里下载的是:wget http://ar2.php.net/distributions/php ...
随机推荐
- [Selenium] 如何使ChromeDriver 每次启动的端口不会随机变化
ChromeDriver 在不指定任何参数的情况下,启动监听端口会随机变化.如果需要保证其端口固定不变,可通过ChromeDriverService 打的目的 public class testCh ...
- 【NOI 2015】软件包管理器
[题目链接] 点击打开链接 [算法] 树链剖分,子树的DFS序也是连续的一段 要注意细节! [代码] #include<bits/stdc++.h> using namespace std ...
- javascript break 和continue
break语句还可以跳出循环,也就是结束循环语句的执行. continue语句的作用为结束本次循环,接着进行下一次是否执行循环的判断. continue与break的区别是:break是彻底结束循环, ...
- 使用putty连接虚拟机上的centos提示Network:connection refused
转自:https://yeyuan.iteye.com/blog/1266484 今天早上开机之后,像往常一样使用putty连接linux的时候,突然提示Network:connection refu ...
- Collection View Programming Guide for iOS---(三)---Designing Your Data Source and Delegate
Designing Your Data Source and Delegate 设计你的数据源和委托 Every collection view must have a data source o ...
- 骨骼蒙皮动画(Skinned Mesh)的原理解析(二)
http://blog.csdn.net/jimoshuicao/article/details/9283071 2)蒙皮信息和蒙皮过程 2-1)Skin info的定义 上文曾讨论过,Skinned ...
- 第五篇 .NET高级技术之CTS、CLS、CLR
CTS.CLS.CLR 1. .Net平台下不只有C#语言,还有VB.Net.F#等语言.IL是程序最终编译的可以执行的二进制代码(托管代码),不同的语言最终都编译成标准的IL(中间语言,MSIL): ...
- profile和bashrc
转自某不知名网友 /etc/profile,/etc/bashrc 是系统全局环境变量设定~/.profile,~/.bashrc用户家目录下的私有环境变量设定当登入系统时候获得一个shell进程时, ...
- SOA架构设计和相关案例分析
一.SOA概念 1.定义: SOA,是一个组件模型,面向服务的体系架构,它将应用程序的不同服务通过这些服务之间定义良好的接口和契约联系起来,不涉及底层编程接口和通讯模型.服务层是SOA的基础,可以直接 ...
- hdu 2818 Building Block 种类并查集
在进行并的时候不能瞎jb并,比如(x, y)就必须把x并给y ,即fa[x] = y #include <iostream> #include <string> #includ ...