Nginx+tomcat websocket配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx+tomcat websocket配置相关的知识,希望对你有一定的参考价值。
nginx location配置
location ^~ /wnhz/websocket/ {
proxy_connect_timeout 60s;——该指令设置与upstream server的连接超时时间,有必要记住,这个超时不能超过75秒
proxy_read_timeout 3600s;——该指令设置与代理服务器的读超时时间。它决定了nginx会等待多长时间来获得请求的响应。这个时间不是获得整个response的时间,而是两次reading操作的时间
proxy_send_timeout 60s; ——这个指定设置了发送请求给upstream服务器的超时时间。超时设置不是为了整个发送期间,而是在两次write操作期间。如果超时后,upstream没有收到新的数据,nginx会关闭连接
proxy_http_version 1.1;——支持websocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_pass http://test/websocket/;
}
--------------------- 官方配置--------------------------------------
location /chat/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
-----------------------------------------------------------------------
tomcat server.xml配置
<Connector port="9999" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" acceptCount="150000"
maxThreads="2000" maxConnections="150000" enableLookups="false" redirectPort="8443" />
connectionTimeout——默认设置为20秒。通过修改该参数,可以修改tomcat的请求超时时间
acceptCount——当tomcat的线程数达到maxThreads后,新的请求就会排队等待,超过排队数的请求会被拒绝,acceptCount最好大于等于maxThreads
maxThreads:
(1)、部署的程序偏计算型,主要利用cpu资源,应该将该参数设置小一点,减小同一时间抢占cpu资源的线程个数。
(2)、部署的程序对io、数据库占用时间较长,线程处于等待的时间较长,应该将该参数调大一点,增加处理个数。
maxConnections——这个值表示最多可以有多少个socket连接到tomcat上。NIO模式下默认是10000
enableLookups——为了消除DNS查询对性能的影响我们可以关闭DNS查询
以上是关于Nginx+tomcat websocket配置的主要内容,如果未能解决你的问题,请参考以下文章
使用 nginx 的 Websocket 代理不适用于 tomcat。