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做前端反代负载均衡,后端httpd+tomcat

使用 nginx 的 Websocket 代理不适用于 tomcat。

Nginx代理webSocket经常中断的解决方案, 如何保持长连接

apache配置反向代理+websocket

记一次通过nginx反代网站请求总是超时的问题

springboot深入学习-----tomcat配置websocket