管理FastCGI进程的方法、管理器、设备及介质技术

技术编号:20369927 阅读:24 留言:0更新日期:2019-02-16 20:05
本发明专利技术实施例提供一种管理FastCGI进程的方法、管理器、设备及介质。所述方法包括:初始化阶段建立一个FastCGI进程,接收到Web服务器连接之后,根据预设新建进程条件判断是否需要新建FastCGI进程,并为Web服务器连接建立对应的进程连接,从而关联Web服务器连接和对应的FastCGI进程,实现通过FastCGI进程处理Web服务器连接请求。本发明专利技术实施例与FastCGI程序编程语言无关,具有通用性,能够依据实际情况动态地创建FastCGI进程,提高了请求处理的效率和系统资源利用率。

Methods, managers, devices and media for managing FastCGI processes

The embodiment of the present invention provides a method, a manager, a device and a medium for managing the FastCGI process. The method includes: establishing a FastCGI process in the initialization stage, after receiving the connection of the Web server, judging whether a new FastCGI process needs to be built according to the preset condition of the new process, and establishing the corresponding process connection for the Web server connection, so as to associate the Web server connection with the corresponding FastCGI process, and realizing the processing of the Web server connection request through the FastCGI process. The embodiment of the invention is independent of the FastCGI programming language and has generality. It can dynamically create the FastCGI process according to the actual situation, thus improving the efficiency of request processing and the utilization rate of system resources.

【技术实现步骤摘要】
管理FastCGI进程的方法、管理器、设备及介质
本专利技术实施例涉及通信
,具体涉及一种管理FastCGI进程的方法、管理器、设备及介质管理FastCGI进程的方法、管理器、设备及介质。
技术介绍
通用网关接口(CommonGatewayInterface,CGI)是外部应用程序(CGI程序)与Web服务器之间传递信息的协议。CGI协议允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器。通过CGI协议可以实现Web请求的动态处理,并且与Web服务器解耦。传统的实现CGI协议的方式是Web服务器解析Web请求后,创建(fork)一个进程,将请求信息写入环境变量和标准输入,执行(execute)CGI程序,并等待读取标准输出的数据;CGI程序从环境变量、标准输入读取请求信息,并将应答写入标准输出。CGI程序fork-and-execute的实现方式需要使用一个进程处理一个请求,当遇到大量请求时,会占用大量系统资源,导致效率低下。快速通用网关接口(FastCommonGatewayInterface,FastCGI)是对CGI协议的扩展和优化。按照FastCGI协议处理请求的程序称为FastCGI程序。FastCGI程序监听一个套接字(Socket),接收来自Web服务器的连接。Web服务器和FastCGI程序之间通过Socket传递请求数据和请求应答。FastCGI程序是常驻型程序,一个进程可以连续处理多个请求,解决了CGI程序效率低下的问题。FastCGI程序运行时即为FastCGI进程,其通常需要由FastCGI进程管理器(FastCGIProcessManager,FPM)创建并设置其监听的套接字地址。FastCGI进程管理器负责管理FastCGI进程的创建和销毁。Spawn-FCGI是目前常用适用于所有编程语言的FastCGI进程管理器。Spawn-FCGI在运行前配置FastCGI进程数,Web服务器启动时载入Spawn-FCGI,Spawn-FCGI初始化,启动配置个数的FastCGI进程后退出。多个FastCGI进程同时等待来自Web服务器的连接。当客户端请求到达Web服务器时,Web服务器连接到FastCGI进程,多个FastCGI进程竞争该连接,并且其中一个获得该连接。Web服务器将CGI环境变量和标准输入发送到FastCGI进程,FastCGI进程完成处理后将标准输出和错误信息从同一连接返回Web服务器。当FastCGI进程关闭连接时,请求便处理完成。FastCGI进程接着等待并处理来自Web服务器的下一个连接。然而,Spawn-FCGI只能按照配置创建固定数量的FastCGI进程,无法动态地创建和销毁FastCGI进程,导致请求处理效率较低,无法最大化地利用系统资源。
技术实现思路
针对现有技术中的缺陷,本专利技术实施例提供了一种管理FastCGI进程的方法、管理器、设备及介质。第一方面,本专利技术实施例提供一种管理FastCGI进程的方法,包括:运行FastCGI程序,建立FastCGI进程;监听与Web服务器对应的套接字,等待接收来自所述Web服务器的连接;接收到Web服务器连接之后,判断是否满足预设新建进程条件;若满足预设新建进程条件,则新建FastCGI进程,将新建的FastCGI进程作为所述Web服务器连接对应的FastCGI进程;为所述Web服务器连接创建进程连接,连接所述进程连接和所述Web服务器连接对应的FastCGI进程;若检测到所述Web服务器连接有请求数据,则将所述请求数据传递至所述进程连接,以供所述FastCGI进程处理所述请求数据,确定应答数据;若检测到所述进程连接有应答数据,则将所述应答数据传递至对应的Web服务器连接,以供所述Web服务器获取所述应答数据。如上述管理FastCGI进程的方法,可选地,还包括:建立进程状态表,关联每个FastCGI进程及其对应的启动时间点、历史连接数、当前连接数、空闲时间点和忙碌时间点;相应地,所述为所述Web服务器连接创建进程连接,连接所述进程连接和所述Web服务器连接对应的FastCGI进程之后,还包括:更新所述进程状态表中所述FastCGI进程对应的当前连接数、空闲时间点和忙碌时间点。如上述管理FastCGI进程的方法,可选地,所述判断是否满足预设新建进程条件,包括:根据所述进程状态表,确定当前连接数最小的FastCGI进程;判断所述当前连接数是否大于预设连接数阈值,若是,则确定满足预设新建进程条件;否则,将所述当前连接数最小的FastCGI进程作为所述Web服务器连接对应的FastCGI进程。如上述管理FastCGI进程的方法,可选地,所述判断是否满足预设新建进程条件,包括:根据所述进程状态表,确定当前连接数最小的FastCGI进程;判断所述当前连接数最小的FastCGI进程的忙碌时间点与当前时间点的差值是否大于第一预设时段阈值,若是,则确定满足预设新建进程条件;否则,将所述当前连接数最小的FastCGI进程作为所述Web服务器连接对应的FastCGI进程。如上述管理FastCGI进程的方法,可选地,还包括:建立进程关系表,关联每个FastCGI进程及其对应的Web服务器连接和进程连接;相应地,所述将所述请求数据传递至所述进程连接,包括:根据所述进程关系表,查找所述Web服务器连接对应的进程连接,将所述请求数据传递至所述进程连接;相应地,所述将所述应答数据传递至对应的Web服务器连接,包括:根据所述进程关系表,查找所述进程连接对应的Web服务器连接,将所述应答数据传递至所述Web服务器连接。如上述管理FastCGI进程的方法,可选地,还包括:若检测到FastCGI进程对应的Web服务器连接或进程连接断开,则从所述进程关系表中删除所述FastCGI进程及其对应的Web服务器连接和进程连接;更新所述进程状态表中所述FastCGI进程对应的历史连接数、空闲时间点和忙碌时间点。如上述管理FastCGI进程的方法,可选地,所述关联每个FastCGI进程及其对应的Web服务器连接和进程连接,还包括:关联每个FastCGI进程对应的定时器;相应地,所述方法还包括:所述定时器到期后,若判断获知所述进程连接未断开,则终止所述进程连接对应的FastCGI进程。如上述管理FastCGI进程的方法,可选地,还包括:每间隔第二预设时段,遍历所述进程状态表,判断FastCGI进程是否满足预设销毁条件;若满足预设销毁条件,则删除所述进程状态表中所述FastCGI进程及其对应的当前连接数、启动时间点、空闲时间点和忙碌时间点。如上述管理FastCGI进程的方法,可选地,所述判断FastCGI进程是否满足预设销毁条件,包括:判断所述FastCGI进程对应的历史连接数是否大于预设连接数阈值,若所述历史连接数大于预设连接数阈值,则确定满足预设销毁条件;或判断FastCGI进程对应的空闲时间点与当前时间点的差值是否大于第三预设时段,若所述差值大于第三预设时段,则确定满足预设销毁条件;或判断FastCGI进程是否已退出,若所述FastCGI进程已退出,则确定满足预设销毁条件。如上述管理FastCGI进程的方法,可选地,还包括:若判断获知删除的本文档来自技高网
...

【技术保护点】
1.一种管理FastCGI进程的方法,其特征在于,包括:运行FastCGI程序,建立FastCGI进程;监听与Web服务器对应的套接字,等待接收来自所述Web服务器的连接;接收到Web服务器连接之后,判断是否满足预设新建进程条件;若满足预设新建进程条件,则新建FastCGI进程,将新建的FastCGI进程作为所述Web服务器连接对应的FastCGI进程;为所述Web服务器连接创建进程连接,连接所述进程连接和所述Web服务器连接对应的FastCGI进程;若检测到所述Web服务器连接有请求数据,则将所述请求数据传递至所述进程连接,以供所述FastCGI进程处理所述请求数据,确定应答数据;若检测到所述进程连接有应答数据,则将所述应答数据传递至对应的Web服务器连接,以供所述Web服务器获取所述应答数据。

【技术特征摘要】
1.一种管理FastCGI进程的方法,其特征在于,包括:运行FastCGI程序,建立FastCGI进程;监听与Web服务器对应的套接字,等待接收来自所述Web服务器的连接;接收到Web服务器连接之后,判断是否满足预设新建进程条件;若满足预设新建进程条件,则新建FastCGI进程,将新建的FastCGI进程作为所述Web服务器连接对应的FastCGI进程;为所述Web服务器连接创建进程连接,连接所述进程连接和所述Web服务器连接对应的FastCGI进程;若检测到所述Web服务器连接有请求数据,则将所述请求数据传递至所述进程连接,以供所述FastCGI进程处理所述请求数据,确定应答数据;若检测到所述进程连接有应答数据,则将所述应答数据传递至对应的Web服务器连接,以供所述Web服务器获取所述应答数据。2.根据权利要求1所述的方法,其特征在于,还包括:建立进程状态表,关联每个FastCGI进程及其对应的启动时间点、历史连接数、当前连接数、空闲时间点和忙碌时间点;相应地,所述为所述Web服务器连接创建进程连接,连接所述进程连接和所述Web服务器连接对应的FastCGI进程之后,还包括:更新所述进程状态表中所述FastCGI进程对应的当前连接数、空闲时间点和忙碌时间点。3.根据权利要求2所述的方法,其特征在于,所述判断是否满足预设新建进程条件,包括:根据所述进程状态表,确定当前连接数最小的FastCGI进程;判断所述当前连接数是否大于预设连接数阈值,若是,则确定满足预设新建进程条件;否则,将所述当前连接数最小的FastCGI进程作为所述Web服务器连接对应的FastCGI进程。4.根据权利要求2所述的方法,其特征在于,所述判断是否满足预设新建进程条件,包括:根据所述进程状态表,确定当前连接数最小的FastCGI进程;判断所述当前连接数最小的FastCGI进程的忙碌时间点与当前时间点的差值是否大于第一预设时段阈值,若是,则确定满足预设新建进程条件;否则,将所述当前连接数最小的FastCGI进程作为所述Web服务器连接对应的FastCGI进程。5.根据权利要求2所述的方法,其特征在于,还包括:建立进程关系表,关联每个FastCGI进程及其对应的Web服务器连接和进程连接;相应地,所述将所述请求数据传递至所述进程连接,包括:根据所述进程关系表,查找所述Web服务器连接对应的进程连接,将所述请求数据传递至所述进程连接;相应地,所述将所述应答数据传递至对应的Web服务器连接,包括:根据所述进程关系表,查找所述进程连接对应的Web服务器连接,将所述应答数据传递至所述Web服务器连接。6.根据权利要求5所述的方法,其特征在于,还包括:若检测到FastCGI进程对应的Web服务器连接或进程连接断开,则从所述进程关系表中删除所述FastCGI进程及其对应的Web服务器连接和进程连接;更新所述进程状态表中所述FastCGI进程对应的历史连接数、空闲时间点和忙碌时间点。7.根据权利要求5所述的方法,其特征在于,所述关联每个FastCGI进程及其对应的Web服务器连接和进程连接,还包括:关联每个FastCGI进程对应的定时器;相应地,所述方法还包括:所述定时器到期后,若判断获知所述进程连接未断开,则终止所述进程连接对应的FastCGI进程。8.根据权利要求5-7任一所述的方法,其特征在于,还包括:每间隔第二预设时段,遍历所述进程状态表,判断FastCGI进程是否满足预设销毁条件;若满足预设销毁条件,则删除所述进程状态表中所述FastCGI进程及其对应的当前连接数、启动时间点、空闲时间点和忙碌时间点。9.根据权利要求8所述的方法,其特征在于,所述判断FastCGI进程是否满足预设销毁条件,包括:判断所述FastCGI进程对应的历史连接数是否大于预设连接数阈值,若所述历史连接数大于预设连接数阈值,则确定满足预设销毁条件;或判断FastCGI进程对应的空闲时间点与当前时间点的差值是否大于第三预设时段,若所述差值大于第三预设时段,则确定满足预设...

【专利技术属性】
技术研发人员:叶林铨
申请(专利权)人:锐捷网络股份有限公司
类型:发明
国别省市:福建,35

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

1