CN111767089A - 加载文件的方法、装置、设备以及存储介质 - Google Patents

加载文件的方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN111767089A
CN111767089A CN202010599858.XA CN202010599858A CN111767089A CN 111767089 A CN111767089 A CN 111767089A CN 202010599858 A CN202010599858 A CN 202010599858A CN 111767089 A CN111767089 A CN 111767089A
Authority
CN
China
Prior art keywords
request
environment variable
parameter
variable
configuration file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010599858.XA
Other languages
English (en)
Inventor
姚乾鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apollo Zhilian Beijing Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010599858.XA priority Critical patent/CN111767089A/zh
Publication of CN111767089A publication Critical patent/CN111767089A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了加载文件的方法、装置、设备以及存储介质,涉及互联网、云计算、软件开发、代码部署等领域。具体实现方案为:响应于第一请求,获取该网页服务器中设置的运行环境变量;按照指定协议的格式封装该第一请求和该运行环境变量,得到第二请求;将该第二请求发送至后端,以在该后端加载与该运行环境变量对应的配置文件。本申请实施例由于网页服务器中设置有运行环境变量,网页服务器将运行环境变量封装在请求中发送给后端,这样,后端可以直接解析得到该运行环境变量,能够方便快捷的加载运行环境变量对应的配置文件。

Description

加载文件的方法、装置、设备以及存储介质
技术领域
本申请涉及计算机领域,尤其涉及互联网、云计算、软件开发、代码部署等领域。
背景技术
在软件开发中配置文件起着至关主要的作用。很多信息和关键值不能硬编码在代码中。例如部分信息是根据运行环境而变化的,硬编码也不利于项目维护,因此需要写成配置文件,根据运行环境的变化动态的加载相应的配置文件。
目前项目中加载相应环境配置文件方式如下:
将各个环境机器的hostname(主机名)写入白名单,程序中通过获取hostname判断运行环境,然后读取相应配置文件。这样需要在程序中维护一个白名单,无法灵活的新增或者删除服务部署的机器。
为各个运行环境的机器设置操作***层级的环境变量,在程序中需要从操作***中读取环境变量,判断运行环境,然后读取相应配置文件。这不仅需要有额外的配置,而且效率低。
发明内容
本申请提供了一种加载文件的方法、装置、设备以及存储介质。
根据本申请的一方面,提供了一种加载文件的方法,包括:
响应于第一请求,获取该网页服务器中设置的运行环境变量;
按照指定协议的格式封装该第一请求和该运行环境变量,得到第二请求;
将该第二请求发送至后端,以在该后端加载与该运行环境变量对应的配置文件。
根据本申请的另一方面,提供了一种加载文件的方法,包括:
接收来自网页服务器的包括运行环境变量的请求;
加载与该运行环境变量对应的配置文件。
根据本申请的另一方面,提供了一种加载文件的装置,包括:
获取模块,用于响应于第一请求,获取该网页服务器中设置的运行环境变量;
封装模块,用于按照指定协议的格式封装该第一请求和该运行环境变量,得到第二请求;
发送模块,用于将该第二请求发送至后端,以在该后端加载与该运行环境变量对应的配置文件。
根据本申请的另一方面,提供了一种加载文件的装置,包括:
接收模块,用于接收来自网页服务器的包括运行环境变量的请求;
加载模块,用于加载与该运行环境变量对应的配置文件。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行加载文件的方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行加载文件的方法。
根据本申请实施例,由于网页服务器中设置有运行环境变量,网页服务器将运行环境变量封装在请求中发送给后端,这样,后端可以直接解析得到该运行环境变量,能够方便快捷的加载运行环境变量对应的配置文件。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一实施例的加载文件的方法的流程图;
图2是根据本申请另一实施例的加载文件的方法的流程图;
图3是根据本申请另一实施例的加载文件的方法的流程图;
图4是根据本申请另一实施例的加载文件的方法的流程图;
图5是根据本申请一实施例的加载文件的装置的框图;
图6是根据本申请另一实施例的加载文件的装置的框图;
图7是根据本申请另一实施例的加载文件的装置的框图;
图8是根据本申请另一实施例的加载文件的装置的框图;
图9是根据本申请实施例的加载文件的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请一实施例的加载文件的方法的流程图,该方法可以应用于网页服务器(WebServer),该方法可以包括:
S101、响应于第一请求,获取网页服务器中设置的运行环境变量;
S102、按照指定协议的格式封装该第一请求和该运行环境变量,得到第二请求;
S103、将该第二请求发送至后端,以在该后端加载与该运行环境变量对应的配置文件。
在本实施例中,可以预先在网页服务器中设置运行环境变量。运行环境变量主要用于指示该网页服务器所支持的运行环境。运行环境有时也称为部署环境。例如,某个项目(或服务)的运行环境包括开发环境、测试环境和线上环境。在调用其他服务或数据处理时,不同环境的不同请求的上游服务或处理方式也会所不同,这些可以写在不同环境的配置文件中。不同环境的配置文件一般与具体的业务相关,也可以称为业务配置文件。业务配置文件中可以包括但不限于图像、链接地址、秘钥等各种内容。
每个网页服务器可以具有自身的运行环境变量。网页服务器收到来自外部例如客户端的第一请求后,可以获取自身的运行环境变量。第一请求可以为针对某种服务例如:天气、火车票、股票、彩票等的请求。接着,网页服务器可以根据第一请求和该网页服务器自身的运行环境变量重新封装,得到第二请求。然后网页服务器可以将该第二请求发送到后端进行处理。后端还可以称为后端的服务端程序、后端的服务器端程序、后端程序等,用于对来自网页服务器请求进行解析和处理。在一种示例中,网页服务器和后端程序可以部署在同一个物理机上。运行环境变量对应的配置文件,可以部署在该物理机本地,也可以部署在远端,例如云端。
后端解析该第二请求,得到其中的运行环境变量,从而加载与该运行环境变量对应的业务配置文件。例如,天气服务具有开发环境和测试环境的业务配置文件,如果第二请求中的运行环境变量表示开发环境,则加载天气服务在开发环境的业务配置文件。
此外,后端既可以加载一个服务的业务配置文件,也可以加载多个服务的业务配置文件。例如,如果运行环境变量表示测试环境,可以加载天气、火车票、股票、彩票等多个服务的业务配置文件。
在本实施例中,由于网页服务器中设置有运行环境变量,网页服务器将运行环境变量封装在请求中发送给后端,这样,后端可以直接解析得到该运行环境变量,能够方便快捷的加载运行环境变量对应的配置文件。与白名单的方式相比,无需维护白名单,也无需逐一对白名单中的主机名进行比较,能够灵活的新增或者删除服务部署的机器,灵活性和可扩展性更高。与***级别的环境变量相比,不需要跳出对进行请求处理的流程,再去操作***中读取环境变量,也不需要其他额外的配置,提高了处理效率。
图2是根据本申请另一实施例的加载文件的方法的流程图。该实施例的加载文件的方法可以包括图1所示实施例的各步骤。在本实施例中,该第一请求中包括可以业务参数;
在S102中,按照指定协议的格式封装该第一请求和该运行环境变量,得到第二请求,包括:S1021、按照指定协议的格式,封装该业务参数和该运行环境变量,得到该第二请求。
在一种示例中,第一请求中可以包括某个服务所需的业务参数。网页服务器解析第一请求可以得到用户信息、请求访问的对象等业务参数。例如,如果解析第一请求得到请求访问的对象为天气服务,并且具体需要查询的城市名为“北京”,表示该第一请求需要查询北京的天气。可以将业务参数和网页服务器自身的运行环境变量按照设定协议的格式进行封装,得到第二请求。后端的程序可以对第二请求进行解析,得到业务参数和运行环境变量。然后,后端的程序可以根据业务参数和运行环境变量加载对应的配置文件,并利用加载的配置文件对该业务参数进行处理。例如,第二请求中的运行环境变量表示开发环境,并且业务参数包括“天气服务”和“北京”,加载天气服务在开发环境的业务配置文件后,向天气服务的开发环境的链接地址发送查询“北京”天气的请求,以查询业务参数“北京”对应的天气情况。
在本实施例中,网页服务器将第一请求的业务参数和运行环境变量一起封装后发送给后端处理,可以在加载运行环境变量对应的配置文件后,对业务参数进行处理,有利于简化处理流程,提高处理效率。
在一种可能的实施方式中,该加载文件的方法还包括:
S201、在网页服务器的配置文件中设置该运行环境变量。网页服务器收到第一请求后,能够从自身的配置文件中读取运行环境变量,并将运行环境变量封装在第二请求中发送给后端,这样,后端可以直接解析得到该运行环境变量,能够方便快捷的加载运行环境变量对应的配置文件。
在一种可能的实施方式中,该网页服务器为超文本传输协议(HyperTextTransfer Protocol,HTTP)服务器,该指定协议为高速通用网关接口(Fast CommonGateway Interface,FastCGI)协议,在S201中,在该网页服务器的配置文件中设置该运行环境变量,包括:在HTTP服务器的FastCGI配置文件中添加用于指示运行环境的FastCGI变量。
FastCGI是一个可伸缩地、高速地在HTTP服务器和动态脚本语言间通信的接口,主要优点是将动态语言和HTTP服务器分离开来,多数网页服务器(WebServer)都支持FastCGI。FastCGI也被许多脚本语言所支持,比较流行的脚本语言之一为超文本预处理器(Hypertext Preprocessor,PHP)。FastCGI接口方式采用C/S架构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程执行,然后将得到的结构返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用***的性能。
例如,Nginx是一种支持FastCGI协议的HTTP服务器。在Nginx的fastcgi.conf文件中FastCGI变量(fastcgi_param),该变量的名称可以为RUNTIME_ENVIROMENT。该FastCGI变量用于指示网页服务器支持的运行环境。
通过配置FastCGI变量(fastcgi_param)RUNTIME_ENVIROMENT,实现环境区分进而读取相应配置文件,能够动态加载配置文件,实现方法简单方便,成本低。
在一种可能的实施方式中,不同的运行环境变量对应不同的运行环境,开发环境的运行环境变量为第一参数,测试环境的运行环境变量为第二参数,线上环境的运行环境变量为第三参数;并且,该第一参数、该第二参数和该第三参数不同。
其中,测试环境也可以称为沙盒(sandbox,又称为沙箱)环境。沙盒环境是在计算机安全领域中是一种安全机制,为运行中的程序提供的隔离环境。
在本申请实施例中,对于每个网页服务器来说,用于指示运行环境的FastCGI变量的值可以是固定的,不同的网页服务器的FastCGI变量的值可能不同。例如,运行环境变量为第一参数“dev”,可以表示开发环境;运行环境变量为第三参数“release”可以表示线上环境;运行环境变量为第二参数“sandbox”可以表示沙盒环境。此外,与用于指示运行环境的FastCGI变量对应的配置文件中,也需要包括类似的值。例如,在配置文件的文件名中包括“dev”,可以表示该配置文件适用于开发环境;文件名中包括“release”可以表示该配置文件适用于线上环境;文件名中包括“sandbox”可以表示该配置文件适用于沙盒环境。上述不同运行环境的值以及配置文件的命名规则仅是示例而非限制,只要是能够区分不同运行环境的字符串均可使用。为不同的运行环境变量设置不同的参数,有利于区分不同运行环境的配置文件,从而方便加载合适的配置文件。
图3是根据本申请另一实施例的加载文件的方法的流程图。该加载文件的方法可以应用于后端,后端又可以称为后端服务器程序或后端程序,用于对来自网页服务器的请求进行解析和处理。该加载文件的方法可以包括:
S301、接收来自网页服务器的包括运行环境变量的请求;
S302、加载与该运行环境变量对应的配置文件。
在本实施例中,来自网页服务器的包括运行环境变量的请求可以参见图1和图2中关于第二请求的相关描述。并且,本实施例与前述实施例相同的描述具有相同的含义,在此不赘述。
在本实施例中,每个网页服务器可以具有自身的运行环境变量。网页服务器收到来自外部例如客户端的第一请求后,可以获取自身的运行环境变量。接着,网页服务器可以根据第一请求和该网页服务器自身的运行环境变量重新封装,得到第二请求。然后网页服务器可以将该第二请求发送到后端进行处理。后端解析该第二请求,得到其中的运行环境变量,从而加载与该运行环境变量对应的业务配置文件。
在本实施例中,由于网页服务器中设置有运行环境变量,后端收到来自网页服务器的包括运行环境变量的请求后,可以直接解析得到该运行环境变量,能够方便快捷的加载运行环境变量对应的配置文件。
图4是根据本申请另一实施例的加载文件的方法的流程图。该实施例的加载文件的方法可以包括图3所示的实施例的各步骤。在本实施例中,该加载文件的方法还包括:
S401、在超文本预处理器(PHP)中,利用环境变量获取函数获取该运行环境变量。PHP是一种通用开源脚本语言。PHP是可以在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。
在执行S301之后,后端可以解析收到的包括运行环境变量的请求,获取其中的运行环境变量。例如,用PHP中的getenv()函数获取运行环境变量。这样,后端能够非常方便快捷的获取运行环境变量。
在一种可能的实施方式中,不同的运行环境变量对应不同的运行环境,开发环境的运行环境变量为第一参数,测试环境的运行环境变量为第二参数,线上环境的运行环境变量为第三参数;并且,所述第一参数、所述第二参数和所述第三参数不同。
在一种可能的实施方式中,该请求中还包括业务参数,该加载文件的方法还包括:S402、利用加载的配置文件对该业务参数进行处理。具体地,后端利用加载的配置文件对业务参数进行处理的方式,可以参见图1和图2的实施例的相关描述,在此不赘述。在加载运行环境变量对应的配置文件后,可以直接对业务参数进行处理,有利于简化处理流程,提高处理效率。
在一种应用示例中,本申请实施例提供一种通过配置FastCGI变量fastcgi_param来实现动态加载配置文件的方法。在网页(Web)请求中,请求首先到达Web服务器(以Nginx为例)。Nginx会通过FastCGI协议把请求数据进行封装,并加上已经预定义好的配置信息,然后传递到后端程序。基于以上原理,开发者只用在Nginx中配置一个fastcgi_param作为运行环境的标识,在后端的程序中读取相关标识,然后读取标识对应的配置文件即可。
本示例中,网页服务器(WebServer)以Nginx为例,服务端编程语言以PHP为例,基本流程如下:
在Nginx的fastcgi.conf文件中添加一个fastcgi配置(参见下述的fastcgi.conf文件的部分代码示例),该配置表明用户定义了一个名为RUNTIME_ENVIROMENT的FastCGI变量。
以下为fastcgi.conf文件的部分代码的示例:
Figure BDA0002558772740000081
Figure BDA0002558772740000091
参见上述配置文件代码的示例,对于每个网页服务器来说,FastCGI变量RUNTIME_ENVIROMENT的值可以是固定的,不同的网页服务器的RUNTIME_ENVIROMENT的值可能不同。上述示例中,RUNTIME_ENVIROMENT为“dev”,可以表示开发环境。
此外,上述示例中声明的“release”可以表示线上环境。“sandbox”可以表示沙盒环境。上述不同运行环境的值仅是示例而非限制,用于区分不同运行环境的值可以是用户定义的任何字符串。
在Nginx的fastcgi.conf文件中添加fastcgi配置(包括名为RUNTIME_ENVIROMENT的FastCGI变量)后,可以重启Nginx,使Nginx加载新添加的fastcgi配置。
当用户的第一请求例如HTTP请求到达Nginx时,Nginx会对该请求进行解析,例如,解析得到请求中包括的时间、人物、地点、需求等业务参数。然后,Nginx将这些业务参数按照装FastCGI协议封装,并在封装的请求中填充相关FastCGI变量。例如,将请求中的fastcgi_param RUNTIME_ENVIROMENT的值设置为“sandbox”。然后将封装后的请求发送到后端的服务端程序进行逻辑处理。
后端的服务端程序可以读取相关的FastCGI变量,无论是FastCGI协议原本支持的,还是用户自定义的。例如,PHP中可以使用getenv("RUNTIME_ENVIROMENT")获取到相关运行环境变量的值,然后根据运行环境变量的值读取相应运行环境的配置文件(参见下述运行环境的配置文件的示例),然后根据配置文件中的信息完成逻辑处理。
以下为运行环境的配置文件的示例:
Figure BDA0002558772740000092
Figure BDA0002558772740000101
示例性地,开发者可以在各个环境做相应配置:
线上环境:fastcgi_param RUNTIME_ENVIROMENT release;
沙盒环境:fastcgi_param RUNTIME_ENVIROMENT sandbox;
开发环境:fastcgi_param RUNTIME_ENVIROMENT dev;
当需要服务扩容或者增加部署时,只用在WebServer中新增一个fastcgi_param的配置即可,非常方便快捷。
在本申请实施例中,通过配置fastcgi_param的方法动态加载配置文件,可以最低成本的实现环境区分进而读取相应配置文件,只需要简单的一条配置指令即可,实现简单并且性能出色。例如,如果将同样的代码部署在三个环境下,采用本申请实施例的方案,可以明确区分应该读取哪个配置文件,不仅能够支持线上的程序读取线上的配置文件,也能够支持测试环境的程序读取测试的配置文件。
图5是根据本申请一实施例的加载文件的装置的框图。该装置可以应用于网页服务器,该装置可以包括:
获取模块41,用于响应于第一请求,获取该网页服务器中设置的运行环境变量;
封装模块42,用于按照指定协议的格式封装该第一请求和该运行环境变量,得到第二请求;
发送模块43,用于将该第二请求发送至后端,以在该后端加载与该运行环境变量对应的配置文件。
在一种可能的实施方式中,该第一请求中包括业务参数;
该封装模块42具体用于按照指定协议的格式,封装该业务参数和该运行环境变量,得到该第二请求。
在一种可能的实施方式中,如图6所示,该装置还包括:
设置模块44,用于在该网页服务器的配置文件中设置该运行环境变量。
在一种可能的实施方式中,该网页服务器为超文本传输协议HTTP服务器,该指定协议为高速通用网关接口FastCGI协议,该设置模块具体用于在HTTP服务器的FastCGI配置文件中添加用于指示运行环境的FastCGI变量。
在一种可能的实施方式中,不同的运行环境变量对应不同的运行环境,开发环境的运行环境变量为第一参数,测试环境的运行环境变量为第二参数,线上环境的运行环境变量为第三参数;
并且,该第一参数、该第二参数和该第三参数不同。
图7是根据本申请一实施例的加载文件的装置的框图。该装置可以应用于后端,该装置可以包括:
接收模块51,用于接收来自网页服务器的包括运行环境变量的请求;
加载模块52,用于加载与该运行环境变量对应的配置文件。
在一种可能的实施方式中,如图8所示,该装置还包括:
获取模块53,用于在超文本预处理器PHP中,利用环境变量获取函数获取该运行环境变量。
在一种可能的实施方式中,该请求中还包括业务参数,该装置还包括:处理模块54,用于利用加载的配置文件对该业务参数进行处理。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图9所示,是根据本申请实施例的加载文件的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图9中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,该存储器存储有可由至少一个处理器执行的指令,以使该至少一个处理器执行本申请所提供的加载文件的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的加载文件的方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的加载文件的方法对应的程序指令/模块(例如,附图5所示的获取模块41、封装模块42和发送模块43。再如,附图7所示的接收模块41、和加载模块42。)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的加载文件的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据加载文件的方法的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至加载文件的方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
加载文件的方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与加载文件的方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与虚拟专用服务器(VPS)服务中,存在的管理难度大,业务扩展性弱的缺陷。
在本申请实施例中,由于网页服务器中设置有运行环境变量,网页服务器将运行环境变量封装在请求中发送给后端,这样,后端可以直接解析得到该运行环境变量,能够方便快捷的加载运行环境变量对应的配置文件。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (18)

1.一种加载文件的方法,包括:
响应于第一请求,获取网页服务器中设置的运行环境变量;
按照指定协议的格式封装所述第一请求和所述运行环境变量,得到第二请求;
将所述第二请求发送至后端,以在所述后端加载与所述运行环境变量对应的配置文件。
2.根据权利要求1所述的方法,其中,所述第一请求中包括业务参数;
按照指定协议的格式封装所述第一请求和所述运行环境变量,得到第二请求,包括:按照指定协议的格式,封装所述业务参数和所述运行环境变量,得到所述第二请求。
3.根据权利要求1所述的方法,其中,还包括:
在所述网页服务器的配置文件中设置所述运行环境变量。
4.根据权利要求3所述的方法,其中,所述网页服务器为超文本传输协议HTTP服务器,所述指定协议为高速通用网关接口FastCGI协议,在所述网页服务器的配置文件中设置所述运行环境变量,包括:
在HTTP服务器的FastCGI配置文件中添加用于指示运行环境的FastCGI变量。
5.根据权利要求1至4中任一项所述的方法,其中,不同的运行环境变量对应不同的运行环境,开发环境的运行环境变量为第一参数,测试环境的运行环境变量为第二参数,线上环境的运行环境变量为第三参数;
并且,所述第一参数、所述第二参数和所述第三参数不同。
6.一种加载文件的方法,包括:
接收来自网页服务器的包括运行环境变量的请求;
加载与所述运行环境变量对应的配置文件。
7.根据权利要求6所述的方法,其中,还包括:
在超文本预处理器PHP中,利用环境变量获取函数获取所述运行环境变量。
8.根据权利要求6或7所述的方法,其中,所述请求中还包括业务参数,所述方法还包括:
利用加载的配置文件对所述业务参数进行处理。
9.一种加载文件的装置,包括:
获取模块,用于响应于第一请求,获取网页服务器中设置的运行环境变量;
封装模块,用于按照指定协议的格式封装所述第一请求和所述运行环境变量,得到第二请求;
发送模块,用于将所述第二请求发送至后端,以在所述后端加载与所述运行环境变量对应的配置文件。
10.根据权利要求9所述的装置,其中,所述第一请求中包括业务参数;
所述封装模块具体用于按照指定协议的格式,封装所述业务参数和所述运行环境变量,得到所述第二请求。
11.根据权利要求9所述的装置,其中,还包括:
设置模块,用于在所述网页服务器的配置文件中设置所述运行环境变量。
12.根据权利要求11所述的装置,其中,所述网页服务器为超文本传输协议HTTP服务器,所述指定协议为高速通用网关接口FastCGI协议,所述设置模块具体用于在HTTP服务器的FastCGI配置文件中添加用于指示运行环境的FastCGI变量。
13.根据权利要求9至12中任一项所述的装置,其中,不同的运行环境变量对应不同的运行环境,开发环境的运行环境变量为第一参数,测试环境的运行环境变量为第二参数,线上环境的运行环境变量为第三参数;
并且,所述第一参数、所述第二参数和所述第三参数不同。
14.一种加载文件的装置,包括:
接收模块,用于接收来自网页服务器的包括运行环境变量的请求;
加载模块,用于加载与所述运行环境变量对应的配置文件。
15.根据权利要求14所述的装置,其中,还包括:
获取模块,用于在超文本预处理器PHP中,利用环境变量获取函数获取所述运行环境变量。
16.根据权利要求14或15所述的装置,其中,所述请求中还包括业务参数,所述装置还包括:
处理模块,用于利用加载的配置文件对所述业务参数进行处理。
17.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
CN202010599858.XA 2020-06-28 2020-06-28 加载文件的方法、装置、设备以及存储介质 Pending CN111767089A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010599858.XA CN111767089A (zh) 2020-06-28 2020-06-28 加载文件的方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010599858.XA CN111767089A (zh) 2020-06-28 2020-06-28 加载文件的方法、装置、设备以及存储介质

Publications (1)

Publication Number Publication Date
CN111767089A true CN111767089A (zh) 2020-10-13

Family

ID=72722494

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010599858.XA Pending CN111767089A (zh) 2020-06-28 2020-06-28 加载文件的方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111767089A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486389A (zh) * 2020-11-30 2021-03-12 维沃移动通信有限公司 配置文件上传方法及装置
CN112860450A (zh) * 2020-12-04 2021-05-28 武汉悦学帮网络技术有限公司 一种请求处理方法及装置
CN113204689A (zh) * 2021-05-25 2021-08-03 深圳物讯科技有限公司 Web的前端可视化打包部署方法及相关产品
CN116522036A (zh) * 2023-07-04 2023-08-01 北京智麟科技有限公司 一种基于在网页端汇总多方信息的环境变量构建方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044132A1 (en) * 2003-08-18 2005-02-24 Campbell Bill F. Web server system and method
CN102902537A (zh) * 2012-09-19 2013-01-30 厦门亿联网络技术股份有限公司 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架
CN103338233A (zh) * 2013-06-05 2013-10-02 新浪网技术(中国)有限公司 负载均衡设备、Web服务器及请求信息处理方法和***
US20160085666A1 (en) * 2014-09-22 2016-03-24 International Business Machines Corporation Auto-deployment and testing of system application test cases in remote server environments
CN105630522A (zh) * 2014-10-31 2016-06-01 阿里巴巴集团控股有限公司 一种Web应用的更新方法、装置和***
CN106897053A (zh) * 2016-07-08 2017-06-27 阿里巴巴集团控股有限公司 一种代码发布方法与装置
CN109086069A (zh) * 2018-10-24 2018-12-25 特瓦特能源科技有限公司 一种后台服务无缝升级方法及其装置
US20190213014A1 (en) * 2017-02-22 2019-07-11 Baidu Online Network Technology (Beijing) Co., Ltd Method and apparatus for loading kernel module
CN110569085A (zh) * 2019-08-15 2019-12-13 上海易点时空网络有限公司 配置文件加载方法及***

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044132A1 (en) * 2003-08-18 2005-02-24 Campbell Bill F. Web server system and method
CN102902537A (zh) * 2012-09-19 2013-01-30 厦门亿联网络技术股份有限公司 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架
CN103338233A (zh) * 2013-06-05 2013-10-02 新浪网技术(中国)有限公司 负载均衡设备、Web服务器及请求信息处理方法和***
US20160085666A1 (en) * 2014-09-22 2016-03-24 International Business Machines Corporation Auto-deployment and testing of system application test cases in remote server environments
CN105630522A (zh) * 2014-10-31 2016-06-01 阿里巴巴集团控股有限公司 一种Web应用的更新方法、装置和***
CN106897053A (zh) * 2016-07-08 2017-06-27 阿里巴巴集团控股有限公司 一种代码发布方法与装置
US20190213014A1 (en) * 2017-02-22 2019-07-11 Baidu Online Network Technology (Beijing) Co., Ltd Method and apparatus for loading kernel module
CN109086069A (zh) * 2018-10-24 2018-12-25 特瓦特能源科技有限公司 一种后台服务无缝升级方法及其装置
CN110569085A (zh) * 2019-08-15 2019-12-13 上海易点时空网络有限公司 配置文件加载方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
董哥的黑板报: "Nginx运行FastCGI程序(ngx_http_fastcgi_module模块、fcgi库、spwan-fcgi进程管理器)", pages 1 - 17, Retrieved from the Internet <URL:https://blog.csdn.net/qq_41453285/article/details/106321820> *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486389A (zh) * 2020-11-30 2021-03-12 维沃移动通信有限公司 配置文件上传方法及装置
CN112860450A (zh) * 2020-12-04 2021-05-28 武汉悦学帮网络技术有限公司 一种请求处理方法及装置
CN112860450B (zh) * 2020-12-04 2024-04-19 武汉悦学帮网络技术有限公司 一种请求处理方法及装置
CN113204689A (zh) * 2021-05-25 2021-08-03 深圳物讯科技有限公司 Web的前端可视化打包部署方法及相关产品
CN116522036A (zh) * 2023-07-04 2023-08-01 北京智麟科技有限公司 一种基于在网页端汇总多方信息的环境变量构建方法
CN116522036B (zh) * 2023-07-04 2023-08-29 北京智麟科技有限公司 一种基于在网页端汇总多方信息的环境变量构建方法

Similar Documents

Publication Publication Date Title
US11461111B2 (en) Method for running applets, and electronic device
CN111767089A (zh) 加载文件的方法、装置、设备以及存储介质
US11445008B2 (en) Data processing methods, electronic devices, and storage media
US9590859B2 (en) Discovering resources of a distributed computing environment
CN111666585A (zh) 子应用访问的方法、装置、电子设备以及可读存储介质
CN111767069A (zh) 小程序处理方法、服务器、设备及存储介质
CN103092599A (zh) 软件开发套件
CN109672722B (zh) 数据部署方法及装置、计算机存储介质和电子设备
CN111881387A (zh) 用于小程序的数据处理方法、装置、设备和介质
CN113254043A (zh) Web前端项目处理方法、装置、电子设备及存储介质
CN116257320B (zh) 一种基于dpu虚拟化配置管理方法、装置、设备及介质
CN112379951A (zh) 服务接口的访问方法、装置、电子设备和介质
US11023156B2 (en) Dynamic API allocation based on data-tagging
CN113761412A (zh) 应用页面的显示方法、装置、电子设备、介质及应用***
CN111767059A (zh) 深度学习模型的部署方法、装置、电子设备和存储介质
CN114661274A (zh) 用于生成智能合约的方法和装置
CN112579096B (zh) 小程序启动文件的编译、加载方法、装置、设备和介质
CN112379885B (zh) 小程序编译方法、装置、设备及可读存储介质
CN114741294A (zh) 一种页面的调试方法、装置、设备及存储介质
CN111966877A (zh) 前端服务方法、装置、设备及存储介质
CN111880778A (zh) 接口文档的生成方法、装置、电子设备及存储介质
US11689630B2 (en) Request processing method and apparatus, electronic device, and computer storage medium
CN111506787A (zh) 网页更新的方法、装置、电子设备和计算机可读存储介质
US9438269B1 (en) Accelerating codeset conversion in a computing environment
CN111614494B (zh) 网络资源的仿真方法、装置、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211020

Address after: 100176 Room 101, 1st floor, building 1, yard 7, Ruihe West 2nd Road, economic and Technological Development Zone, Daxing District, Beijing

Applicant after: Apollo Zhilian (Beijing) Technology Co.,Ltd.

Address before: 2 / F, *** building, 10 Shangdi 10th Street, Haidian District, Beijing 100085

Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.