System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() Nginx多连接数据处理方法、装置、电子设备及存储介质制造方法及图纸_技高网

Nginx多连接数据处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:40834256 阅读:2 留言:0更新日期:2024-04-01 14:58
本公开实施例公开了一种Nginx多连接数据处理方法、装置、电子设备及存储介质。其中,Nginx多连接数据处理方法包括:Nginx的数据接收进程接收多条连接上传输的数据;为所述数据添加私有协议,所述私有协议中包括用于指示所述数据所属的数据块的标识;将属于同一个数据块的所述数据分流至同一个通信队列;一个数据处理进程从对应的一个所述通信队列中获取所述数据,根据所述私有协议将属于同一个数据块的数据嫁接到同一个会话中,数据处理进程从所述会话中提取数据进行处理,发送处理后的数据。该方法能够减轻甚至避免出现进程阻塞的情况,充分利用Nginx的异步机制。

【技术实现步骤摘要】

本公开涉及数据处理,尤其涉及一种nginx多连接数据处理方法、装置、电子设备及非易失性计算机存储介质。


技术介绍

1、nginx是一个高性能的http和反向代理web服务器,通常作为异步处理框架应用。为了充分利用nginx的cpu多核的特性,在nginx工作时一般会开启多个进程。特别是nginx作为代理服务器部署在单向光闸的外端机上时,客户端和外端机之间的多条并行连接传输的数据会分配到不同进程中。

2、由于每条连接上传输的只是部分数据,而对数据检查时需保证数据连续并且是顺序的,现有技术中,通常采用共享内存方式来保证数据的完整性,在共享内存中的数据与当前进程接收的数据为完整数据后,对数据进行后续的业务处理,例如安全检查。

3、专利技术人发现,当出现多个进程同时访问共享内存时,容易出现后续进程阻塞的情况,进而无法充分利用nginx的异步机制。


技术实现思路

1、为了解决上述问题,本公开实施例提供了一种nginx多连接数据处理方法、装置、电子设备及非易失性计算机存储介质,可以减轻甚至避免出现进程阻塞的情况,充分利用nginx异步机制。

2、第一方面,本公开实施例提供了一种nginx多连接数据处理方法,包括:

3、nginx的数据接收进程接收多条连接上传输的数据;

4、为所述数据添加私有协议,所述私有协议中包括用于指示所述数据所属的数据块的标识;

5、将属于同一个数据块的所述数据分流至一个通信队列;

6、一个数据处理进程从对应的一个所述通信队列中获取数据,根据所述私有协议将属于同一个数据块的数据嫁接到同一个会话处理中;

7、数据处理进程从所述会话中提取数据进行处理,发送处理后的数据。

8、可选地,添加所述私有协议后的所述数据的结构包括:udp头、私有协议和数据内容;所述私有协议的内容包括:会话id、源端ip、目的端口和目的端ip,所述会话id为用于指示所述数据所属的数据块的标识;

9、所述将属于同一个数据块的所述数据分流至同一个通信队列,包括:将所述数据的标识,及所述协议信息中的源端ip、目的端口、目的端ip作为四元组,进行hash运算;将hash运算的结果相同的数据分流到同一个所述通信队列。

10、可选地,所述根据所述私有协议将属于同一个数据块的数据嫁接到同一个会话中,包括:根据所述私有协议,在nginx的嫁接层中完成所述数据对应的连接结构体的查找;在nginx的嫁接层中查找与所述连接结构体对应的会话结构体,一个所述会话结构体对应多个所述连接结构体。

11、可选地,通过nginx配置管理所述数据处理进程,nginx配置信息包括监听结构,所述监听结构中包括保存连接结构体的第一红黑树。所述根据所述私有协议,在nginx的嫁接层中完成所述数据对应的连接结构体的查找,包括:根据所述私有协议中的目的端口和目的端ip找到对应的监听结构;在所述监听结构中的所述第一红黑树中查找所述数据对应的连接结构体。

12、可选地,所述根据所述私有协议,在nginx的嫁接层中完成所述数据对应的连接结构体的查找,还包括:在所述监听结构中的所述第一红黑树中未找到对应的连接结构体时,在连接池中获取新的连接,将所获取的新的连接对应的连接结构体保存到所述第一红黑树中。

13、可选地,所述监听结构中还包括保存会话结构体的第二红黑树。所述在nginx的嫁接层中查找与所述连接结构体对应的会话结构体,包括:在所述第二红黑树中查找以所述私有协议中会话id作为key的会话结构体;若查找到会话结构体,则将查找到的会话结构体作为所述连接结构体对应的会话结构体;若未查找到会话结构体,则初始化新的会话结构体,保存到所述第二红黑树中,完成连接结构体与会话结构体的绑定。

14、可选地,所述一个数据处理进程从对应的一个所述通信队列中获取数据,包括:设置定时器,以使所述数据处理进程通过轮询方式从对应的所述通信队列中获取数据。

15、可选地,所述数据处理进程从所述会话中提取数据进行处理,包括:对所述数据进行安全检查;删除通过安全检查的数据中的私有协议。

16、第二方面,本公开的一些实施例提供了一种nginx多连接数据处理装置,包括:

17、数据接收模块,用于供nginx的数据接收进程接收多条连接上传输的数据;

18、协议添加模块,用于为所述数据添加私有协议,所述私有协议中包括用于指示所述数据所属的数据块的标识;

19、数据分流模块,用于将属于同一个数据块的所述数据分流至同一个通信队列;

20、数据嫁接模块,用于供一个数据处理进程从对应的一个所述通信队列中获取数据,根据所述私有协议将属于同一个数据块的数据嫁接到同一个会话中;

21、数据发送模块,用于供数据处理进程从所述会话中提取数据进行处理,发送处理后的数据。

22、第三方面,本公开实施例提供了一种电子设备,所述电子设备包括:处理器和存储器,存储器中存储有可执行代码,处理器执行存储器中存储的可执行代码时实现上述第一方面及其可选方案所公开的nginx多连接数据处理方法。

23、第四方面,本公开实施例提供了一种非易失性计算机存储介质,用于存储计算机指令;计算机指令在被执行时实现上述第一方面及其可选方案所公开的nginx多连接数据处理方法。

24、本公开实施例所提供的nginx多连接数据处理方法、电子设备及非易失性计算机存储介质,在nginx多连接数据处理方法中,首先nginx的数据接收进程接收多条连接上传输的数据,然后为数据添加私有协议,私有协议中包括用于指示所述数据所属的数据块的标识,将属于同一个数据块的数据分流至同一个通信队列,然后一个数据处理进程从对应的一个通信队列中获取数据,根据私有协议将属于同一个数据块的数据嫁接到同一个会话中,最后数据处理进程从会话中提取数据进行处理,发送处理后的数据。在数据接收进程接收到数据后,将同一数据块的数据分流至同一个通信队列,数据处理进程从对应的通信队列中获取数据,可以避免多个进程同时访问共享内存,从而能够减轻甚至避免出现进程阻塞的情况,充分利用nginx的异步机制。

25、上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

本文档来自技高网...

【技术保护点】

1.一种Nginx多连接数据处理方法,其特征在于,包括:

2.根据权利要求1所述的Nginx多连接数据处理方法,其特征在于,添加所述私有协议后的所述数据的结构包括:UDP头、私有协议和数据内容;所述私有协议的内容包括:会话ID、源端IP、目的端口和目的端IP,所述会话ID为用于指示所述数据所属的数据块的标识;

3.根据权利要求2所述的Nginx多连接数据处理方法,其特征在于,所述根据所述私有协议将属于同一个数据块的数据嫁接到同一个会话中,包括:

4.根据权利要求3所述的Nginx多连接数据处理方法,其特征在于,Nginx配置信息包括监听结构,所述监听结构中包括保存连接结构体的第一红黑树;

5.根据权利要求4所述的Nginx多连接数据处理方法,其特征在于,所述根据所述私有协议,在Nginx的嫁接层中完成所述数据对应的连接结构体的查找,还包括:

6.根据权利要求4所述的Nginx多连接数据处理方法,其特征在于,所述监听结构中还包括保存会话结构体的第二红黑树;

7.根据权利要求1所述的Nginx多连接数据处理方法,其特征在于,所述一个数据处理进程从对应的一个所述通信队列中获取数据,包括:

8.根据权利要求1-7中任一项所述的Nginx多连接数据处理方法,其特征在于,所述数据处理进程从所述会话中提取数据进行处理,包括:

9.一种Nginx多连接数据处理装置,其特征在于,包括:

10.一种电子设备,其特征在于,所述电子设备包括:

11.一种非易失性计算机存储介质,其特征在于,其上存储有计算机指令,所述计算机指令在被执行时实现如权利要求1-8任一项所述的Nginx多连接数据处理方法。

...

【技术特征摘要】

1.一种nginx多连接数据处理方法,其特征在于,包括:

2.根据权利要求1所述的nginx多连接数据处理方法,其特征在于,添加所述私有协议后的所述数据的结构包括:udp头、私有协议和数据内容;所述私有协议的内容包括:会话id、源端ip、目的端口和目的端ip,所述会话id为用于指示所述数据所属的数据块的标识;

3.根据权利要求2所述的nginx多连接数据处理方法,其特征在于,所述根据所述私有协议将属于同一个数据块的数据嫁接到同一个会话中,包括:

4.根据权利要求3所述的nginx多连接数据处理方法,其特征在于,nginx配置信息包括监听结构,所述监听结构中包括保存连接结构体的第一红黑树;

5.根据权利要求4所述的nginx多连接数据处理方法,其特征在于,所述根据所述私有协议,在nginx的嫁接层中完成...

【专利技术属性】
技术研发人员:冯哲鹏杨瀛董俊韦
申请(专利权)人:北京天融信网络安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1