nginx代理websocket连接上限

作者&投稿:阿帖 (若有异议请与网页底部的电邮联系)
~ 1. nginx最多只能维持(65535*后端服务器IP个数)条websocket的长连接,如果后端websocket服务器IP只有一个,那么就只能最多支持65535条连接。瓶颈就产生在了nginx上。

2. 建议采用LVS的DR模式来做负载均衡,这样最大长连接数目就只和websocket服务器资源(主要是内存)有关了,单台websocket服务器很轻松可以支撑百万级连接

用nginx做websocket的反向代理其中涉及到的资源有:

1. 内存(相关数据结构的存储)、cpu、网络

内存的占用分两部分,一部分是内核中tcp协议栈结构占用的内存,一部分是nginx中维持双向连接数据结构占用的内存

按照理想状况,一条tcp连接的数据结构在内存中占用大约4KB左右,nginx的内存占用,没有统计相关的结构体,这里就等于2KB(nginx的内存利用非常高效,有内存池)

对于现在的服务器来说内存、cpu、网络都不会是瓶颈,因此这里不做讨论。

2. 文件描述符数量

可能需要调整内核参数,文件描述符的数量其实也是和内存相关的,因为每打开一个tcp连接,就得占用一个文件描述符。

内核参数:fs.file-max

这是和系统资源相关的,也不会是瓶颈

3. 端口号数量

内核参数为:net.ipv4.ip_local_port_range,且最大值为65535

linux内核是通过{local_ip, local_port, remote_ip, remote_port}这个四元组来标识一条唯一的tcp连接的。

1)对于websocket服务器自身而言,local_ip, local_port是确定的,在内存、cpu足够的情况下,其可以支撑 (client_ip数量*2^16)条连接。也就是说只要服务器资源足够,一定不会是瓶颈。

2)对于nginx服务器来说,local_ip, local_port也是确定的,不同的是,它还要作为client去连接websocket服务器,这是要占用一个端口的。

博主更多好文请移步: http://wjhsmart.vip

自己喜欢建站的小伙伴也可以联系博主友联哦。


昆都仑区14732956040: nginx 1.0 支持 websocket吗 -
商晶芬利: WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择.其为HTML5的一部分,WebSocket相较于原来开发这类app的方法来说,其能使开发更加地简单.大部分现在的浏览器都支持WebSocket,比如Firefox,IE,...

昆都仑区14732956040: nginx websocket需要哪些模块 -
商晶芬利: 看官方文档说 Nginx 在 1.3 以后的版本才支持 websocket 反向代理,所以要想使用支持 websocket 的功能,必须升级到 1.3 以后的版本,因此我这边是下载的 Tengine 的最新版本测试的!

昆都仑区14732956040: 用nginx代理netty实现的websocket做负载均衡,最大连接数取决于谁 -
商晶芬利: route('/callback_result', methods = ["POST","GET"]) def callback_result(): try:nm = nmap.PortScanner() instantiate nmap.PortScanner object except nmap.PortScannerError: sys.exit(0) except: sys.exit(0)

昆都仑区14732956040: nginx能实现soket反向代理吗 -
商晶芬利: nginx能实现soket反向代理 通过这个模块,代理后端其它协议应用,如mysql, nosql之类的 比如用Node.JS写了一些TCP服务,那么Nginx就可以给这些Node.JS做TCP代理,比如开启多个Node.JS监听不同的端口,经过Nginx TCP代理到...

昆都仑区14732956040: nginx 如何同时配置https和wss -
商晶芬利: nginx同时配置https和wss代码如下: server { listen 443 ssl; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate ******.pem; ssl_certificate_key *******.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-...

昆都仑区14732956040: websocket client 怎么实现 -
商晶芬利: websocket是双向链接的.当成功连接之后,你可以获得一个客户端的socket.在需要主动发送数据的时候,只需要socket.send就可以发送数据了.当然前提是这个socket要依然有效.

昆都仑区14732956040: websocket server要怎么部署 -
商晶芬利: 服务器端由Nginx/Apache+PHP提供HTTP服务,比如监听80端口.浏览器访问 http://im.swoole.com/main.html 获取Nginx/Apache+PHP服务产生的数据.PHP实现的WebSocket服务(CLI程序)单独监听一个端口,比如9503:main.html页面里用...

昆都仑区14732956040: jboss支持websocket么 -
商晶芬利: 主流的java web服务器都有支持JSR365标准的版本了,请自行Google. 用nginx做反向代理的需要注意啦,socket请求需要做特殊配置的,切记! Tomcat的处理方式建议修改为NIO的方式,同时修改连接数到合适的参数,请自行...

昆都仑区14732956040: 如何用php实现websocket -
商晶芬利: websocket需要php监听一个固定的端口,而不是请求的时候再去执行 一般的主机服务无法实现此功能 如果你有服务器的设置权限,可以在服务器上用php命令开启端口,再用nginx做一个Websocket代理 大多数虚拟主机服务商是不支持自己配置服务器的

昆都仑区14732956040: 给nginx打tcp补丁问题 -
商晶芬利: 1、你可能是“cd nginx-1.2.1/”这一步错了.'=2、 这里是对 nginx_tcp_proxy_module比较全的说明:https://github.com/yaoweibin/nginx_tcp_proxy_module 安装步骤:$ wget 'http://nginx.org/download/nginx-1.2.1.tar.gz' $ tar -xzvf nginx-1.2.1.tar...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网