The invention discloses a Nginx upstream proxy service system and implementation method, the proxy service system includes management agent service module and data Nginx module, the method includes: the establishment of the shared memory management service module and the data Nginx module; the load sharing channel memory as the TCP connection load data; the TCP is connected with the load data including the HTTP request data and the upstream server HTTP response data. In the invention, the system and the method use the shared memory as the carrying channel of the TCP connection load data, thereby effectively improving the data forwarding efficiency of the proxy system.
【技术实现步骤摘要】
Nginx上游代理服务系统及实现方法
本专利技术涉及网络安全领域,特别是涉及一种Nginx上游代理服务系统及实现方法。
技术介绍
多核时代的网络安全设备一般区分管理面和数据面,管理面是提供给网络管理人员使用Telnet、Web、SSH、SNMP等方式来管理设备,数据面的基本任务是处理和转发不同端口上各种类型的数据,例如L2/L3/ACL/Qos/组播/安全防护等各功能的具体执行过程,都属于数据转发平面的任务范畴。Nginx("enginex")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx在Linux上使用epoll异步非阻塞模型高效的处理了TCP请求,是数据面实现HTTP请求的代理转发首选。现有技术中一般通过数据面Nginx服务器,监听到某一个或几个端口提供Web服务,客户端通过数据面快速协议栈处理连接到Nginx。Nginx通过AF_INET域套接字和上游服务器进行反向代理,Nginx和上游服务器的上下游报文都需要经过系统协议栈。Nginx通过AF_INET域套接字和上游服务器进行反向代理,Nginx和上游服务器的上下游报文都需要经过系统协议栈。或者,Nginx通过AF_LOCAL/AF_UNIX域套接字和上游服务器进行反向代理,Nginx和上游服务器的上下游报文不需要经过系统协议栈,经过IPC(Inter-ProcessCommunication,进程间通信)机制进行报文传递。因此,现有技术存在如下缺陷:1、上下游报文系统协议栈处理,会对报文的转发产生性能影响。2、由于技术限制某些情形下,数据面Ng ...
【技术保护点】
一种Nginx上游代理服务系统实现方法,其特征在于,所述代理服务系统包括管理面代理服务模块和数据面Nginx模块,所述方法包括:对所述管理面代理服务模块和所述数据面Nginx模块建立共享内存;将所述共享内存作为TCP连接载荷数据的承载通道;所述TCP连接载荷数据包括用户的HTTP请求数据和上游服务器的HTTP响应数据。
【技术特征摘要】
1.一种Nginx上游代理服务系统实现方法,其特征在于,所述代理服务系统包括管理面代理服务模块和数据面Nginx模块,所述方法包括:对所述管理面代理服务模块和所述数据面Nginx模块建立共享内存;将所述共享内存作为TCP连接载荷数据的承载通道;所述TCP连接载荷数据包括用户的HTTP请求数据和上游服务器的HTTP响应数据。2.如权利要求1所述的方法,其特征在于,所述将所述共享内存作为TCP连接载荷数据的承载通道,包括:所述数据面Nginx模块接收到用户Portal请求时,从所述共享内存中申请一条承载通道,并标记为新连接;所述管理面代理服务模块扫描所述共享内存,发现所述新连接的标记时,创建与上游服务器的本地连接。3.如权利要求2所述的方法,其特征在于,所述所述数据面Nginx模块接收到用户Portal请求,包括:所述所述数据面Nginx模块在接收到用户TCP请求时,与所述用户建立TCP连接;通过所述TCP连接,接收到所述用户的首次HTTP请求时,解析所述首次HTTP请求为所述用户Portal请求。4.如权利要求2所述的方法,其特征在于,所述管理面代理服务模块扫描所述共享内存,发现所述新连接的标记时,创建与上游服务器的本地连接之后,还包括:所述数据面Nginx模块接收到用户的HTTP请求数据,将所述HTTP请求数据写入所述承载通道,并标记为第一新数据到达;所述管理面代理服务模块轮询所述本地连接,发现所述第一新数据到达的标记时,从所述承载通道中读取所述HTTP请求数据,并发送给上游服务器,以及接收所述上游服务器的HTTP响应数据,将所述HTTP响应数据写入所述承载通道,并标记第二新数据到达;所述数据面Nginx模块轮询所述本地连接,发现所述第二新数据到达的标记时,从所述承载通道中读取所述HTTP响应数据,并发送给用户。5.如权利要求2所述的方法,其特征在于,所述管理面代理服务模块扫描所述共享内存,发现所述新连接的标记时,创建与上游服务器的本地连接之后,还包括:所述管理面代理服务模块探测到所述上游服务器关闭本地连接时,在所述承载通道上设置第一关闭连接标记;所述数据面Nginx模块轮询到所述第一关闭连接标记时,...
【专利技术属性】
技术研发人员:郭春碌,费恩达,
申请(专利权)人:北京天融信网络安全技术有限公司,北京天融信科技有限公司,北京天融信软件有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。