CN106777346B - 基于C语言的Nginx web后端数据处理方法及系统 - Google Patents

基于C语言的Nginx web后端数据处理方法及系统 Download PDF

Info

Publication number
CN106777346B
CN106777346B CN201710030292.7A CN201710030292A CN106777346B CN 106777346 B CN106777346 B CN 106777346B CN 201710030292 A CN201710030292 A CN 201710030292A CN 106777346 B CN106777346 B CN 106777346B
Authority
CN
China
Prior art keywords
data
http request
processing
backpack body
http
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.)
Active
Application number
CN201710030292.7A
Other languages
English (en)
Other versions
CN106777346A (zh
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201710030292.7A priority Critical patent/CN106777346B/zh
Publication of CN106777346A publication Critical patent/CN106777346A/zh
Application granted granted Critical
Publication of CN106777346B publication Critical patent/CN106777346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开一种基于C语言的Nginx web后端数据处理方法和系统,所述方法应用于Nginx服务器,具体包括以下步骤:获取用户发送的http数据请求;缓存所述http数据请求;根据用户的定义对所述http数据请求进行过滤;将过滤后的http数据请求进行包体处理;将进行过包体处理的http数据请求进行分发;对进行过包体处理的http数据请求进行解析;将解析过的http数据请求发送至数据处理终端进行数据处理,得到数据处理结果;将所述数据处理结果发送至所述客户端。本发明使Nginx服务器能够直接实现动态服务页面代理功能,而不依赖其他程序处理器进行后端数据处理,降低了系统的复杂性,节省了开销。

Description

基于C语言的Nginx web后端数据处理方法及系统
技术领域
本发明涉及数据处理领域,特别是涉及一种基于C语言的Nginx web后端数据处理方法及系统。
背景技术
Nginx一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,由于出色的性能,在世界范围内受到了越来越多人的关注,目前Nginx一般用于静态Web服务器或者反向代理服务器等应用,而Web后端处理大部分使用Nginx反向代理功能由ApacheHTTP Server或者互联网信息服务(Internet Information Services,IIS)框架作为Web程序处理器,编程语言基本使用Java、JSP、超文本预处理器(PHP:Hypertext Preprocessor,PHP)、ASP.NET。这些编程语言一般属于预编译或者不编译的纯解释性语言,需要有对应的运行环境,即没有编译成操作系统可识别的二进制程序,比如Java需要Java虚拟机、ASP.NET需要.Net框架、PHP需要有PHP解释器,这些无疑都增加了系统的开销,带来的发行包庞大等,而C/C++的公共网关接口(Common Gateway Interface,CGI)可使用的应用程序编程接口(Application Programming Interface,API)较少,编程困难。
发明内容
本发明的目的是提供一种基于C语言的Nginx web后端数据处理方法及系统,使Nginx服务器能够直接实现动态服务页面代理功能,而不依赖其他程序处理器进行后端数据处理,降低了系统的复杂性,节省了开销。
为实现上述目的,本发明提供了如下方案:
基于C语言的Nginx web后端数据处理方法,所述处理方法包括:
获取客户端发送的http数据请求;
缓存所述http数据请求;
根据用户的定义对所述http数据请求进行过滤;
将过滤后的http数据请求进行包体处理;
将进行过包体处理的http数据请求进行分发;
对进行过包体处理的http数据请求进行解析;
将解析过的http数据请求发送至数据处理终端进行数据处理,得到数据处理结果;
将所述数据处理结果发送至所述客户端。
可选的,所述根据用户定义对所述http数据请求进行过滤具体包括:
获取所述http数据请求的用户定义,所述用户定义具体包括http数据请求类型、IP地址区段和http数据包体大小阈值;
将所述http数据请求与所述用户定义进行比较;
将不符合所述用户定义的http数据请求的错误信息返回给所述客户端。。
可选的,所述将过滤后的http数据请求进行包体处理具体包括:对所述http数据请求进行丢弃包体处理,或对所述http数据请求进行接收包体处理,或对所述http数据请求的包体进行忽略包体处理。
可选的,所述将进行过包体处理的http数据请求进行分发具体包括:将进行过包体处理的http数据请求由主线程处理或者分发给线程池处理,所述线程池包括多个线程,可以同时处理多个任务,所述线程池配置有消息服务系统。
可选的,所述对进行过包体处理的http数据请求进行解析,具体包括:对进行过包体处理的http数据请求进行表单解析。
可选的,所述对进行过包体处理的http数据请求进行解析,具体包括:将包体部分生成json对象。
可选的,所述对进行过包体处理的http数据请求进行解析,具体包括:
获取所述http数据请求的标准头部信息和自定义头部信息;
设置所述http数据响应的标准头部信息和自定义头部信息。
基于C语言的Nginx web后端数据处理系统,所述处理系统包括:
获取单元,用于获取客户端发送的http数据请求;
缓存单元,用于缓存所述http数据请求;
过滤单元,用于根据用户的定义对所述http数据请求进行过滤;
包体处理单元,用于将过滤后的http数据请求进行包体处理;
分发单元,用于将进行过包体处理的http数据请求进行分发;
解析单元,用于对进行过包体处理的http数据请求进行解析;
数据处理单元,用于将解析过的http数据请求发送至数据处理终端进行数据处理,得到数据处理结果;
发送单元,用于将所述数据处理结果发送至所述客户端
根据本发明提供的具体实施例,本发明公开了以下技术效果:
1、本发明提供了一种基于C语言的Nginx web后端数据处理方法,该方法可以直接应用于Nginx服务器,为Nginx服务器提供了直接做Web后端处理的能力;使Nginx服务器的功能更加完善,更加简单的为其他非Web应用提供Web API接口。
2、由于本方法所实现的功能均通过C语言实现,运行效率有了很大提升,在同等并发请求的条件使用的物理资源比其他语言更少,不需要其他解释器、框架及虚拟机,节省了应用部署的硬件成本。
3、本方法提供的两种任务分发方式适用于不同业务需求,第二任务分发方式可以使应用更加简单的进行分布式部署。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于C语言的Nginx web后端数据处理方法实施例的流程图;
图2为本发明基于C语言的Nginx web后端数据处理系统实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于C语言的Nginx web后端数据处理方法及系统,使Nginx服务器能够直接实现动态服务页面代理功能,而不依赖其他程序处理器进行后端数据处理,降低了系统的复杂性,节省了开销。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明基于C语言的Nginx web后端数据处理方法实施例的流程图。如图1所示,基于C语言的Nginx web后端数据处理方法,所述处理方法包括:
步骤101,获取客户端发送的http数据请求;
步骤102,缓存所述http数据请求;
步骤103,根据用户的定义对所述http数据请求进行过滤:
步骤1031,获取所述http数据请求的用户定义,所述用户定义具体包括http数据请求类型、IP地址区段和http数据包体大小阈值;
步骤1032,将所述http数据请求与所述用户定义进行比较;
步骤1033,将不符合所述用户定义的http数据请求的错误信息返回给所述客户端。
步骤104,将过滤后的http数据请求进行包体处理。根据http数据请求的不同可以对包体进行以下三种处理:(1)对所述http数据请求进行忽略丢弃包体处理,适用于只需要包头的任务,如GET方法提交的操作;(2)对所述http数据请求进行接受包体处理,适用于包体数据不是很大的任务,如POST方法提交的普通表单或json格式数据;(3)对所述http数据请求的进行忽略包体处理,既不接收也不丢弃包体,也就是说不做任何处理,适用于数据量大并且需要对数据进行特殊处理的任务,如上传文件或者对数据进行加密和解密操作。
步骤105,将进行过包体处理的http数据请求进行分发。本方法提供了两种分发方式:第一种方式:直接将进行过包体处理的http数据请求交由主线程处理;这种方式适用于一些耗时比较小但访问比较频繁的任务,如访问已经存在于内存的数据,即该任务不会阻塞当前线程的执行。第二种方式:将过滤后的http数据请求进行包体处理给线程池,所述线程池包括多个线程,可以同时处理多个任务;这种方式适用于耗时比较大且访问数据不存在于内存中的任务,如访问数据库中的数据或者本地文件。如果所述线程池配置有消息服务系统,则适用于比较复杂的任务,该任务需要多个处理器并行处理,如访问存在于不同机器上的数据。
步骤106,对进行过包体处理的http数据请求进行解析。根据http数据请求的不同,有以下三种不同的解析过程:(1)对进行过包体处理的http数据请求进行表单解析;(2)将包体部分生成json对象;(3)获取所述http数据请求的标准头部信息和自定义头部信息;设置所述数据响应的标准头部信息和自定义头部信息。
步骤107,将解析过的http数据请求发送至数据处理终端进行数据处理,得到数据处理结果。
步骤108,将所述数据处理结果发送至所述客户端。
图2为本发明基于C语言的Nginx web后端数据处理系统实施例的结构图。如图2所示,所述基于C语言的Nginx web后端数据处理系统包括:获取单元201,用于获取客户端发送的http数据请求;缓存单元202,用于缓存所述http数据请求;过滤单元203,用于根据用户的定义对所述http数据请求进行过滤;包体处理单元204,用于将过滤后的http数据请求进行包体处理;分发单元205,用于将进行过包体处理的http数据请求进行分发;解析单元206,用于对进行过包体处理的http数据请求进行解析;数据处理单元207,用于将解析过的http数据请求发送至数据处理终端进行数据处理,得到数据处理结果;发送单元208,用于将所述数据处理结果发送至所述客户端。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.基于C语言的Nginx web后端数据处理方法,其特征在于,所述处理方法包括:
获取客户端发送的http数据请求;
缓存所述http数据请求;
根据用户的定义对所述http数据请求进行过滤;
将过滤后的http数据请求进行包体处理;
将进行过包体处理的http数据请求进行分发;所述将进行过包体处理的http数据请求进行分发具体包括:将进行过包体处理的http数据请求由主线程处理或者分发给线程池处理,所述线程池包括多个线程,可以同时处理多个任务,所述线程池配置有消息服务系统;
对进行过包体处理的http数据请求进行解析;
将解析过的http数据请求发送至数据处理终端进行数据处理,得到数据处理结果;
将所述数据处理结果发送至所述客户端。
2.根据权利要求1所述的处理方法,其特征在于,所述根据用户定义对所述http数据请求进行过滤具体包括:
获取所述http数据请求的用户定义,所述用户定义具体包括http数据请求类型、IP地址区段和http数据包体大小阈值;
将所述http数据请求与所述用户定义进行比较;
将不符合所述用户定义的http数据请求的错误信息返回给所述客户端。
3.根据权利要求1所述的处理方法,其特征在于,所述将过滤后的http数据请求进行包体处理具体包括:对所述http数据请求进行丢弃包体处理,或对所述http数据请求进行接收包体处理,或对所述http数据请求的包体进行忽略包体处理。
4.根据权利要求1所述的处理方法,其特征在于,所述对进行过包体处理的http数据请求进行解析,具体包括:对进行过包体处理的http数据请求进行表单解析。
5.根据权利要求1所述的处理方法,其特征在于,所述对进行过包体处理的http数据请求进行解析,具体包括:将包体部分生成json对象。
6.根据权利要求1所述的处理方法,其特征在于,所述对进行过包体处理的http数据请求进行解析,具体包括:
获取所述http数据请求的标准头部信息和自定义头部信息;
设置所述http数据响应的标准头部信息和自定义头部信息。
7.基于C语言的Nginx web后端数据处理系统,其特征在于,所述处理系统包括:
获取单元,用于获取客户端发送的http数据请求;
缓存单元,用于缓存所述http数据请求;
过滤单元,用于根据用户的定义对所述http数据请求进行过滤;
包体处理单元,用于将过滤后的http数据请求进行包体处理;
分发单元,用于将进行过包体处理的http数据请求进行分发;所述将进行过包体处理的http数据请求进行分发具体包括:将进行过包体处理的http数据请求由主线程处理或者分发给线程池处理,所述线程池包括多个线程,可以同时处理多个任务,所述线程池配置有消息服务系统;
解析单元,用于对进行过包体处理的http数据请求进行解析;
数据处理单元,用于将解析过的http数据请求发送至数据处理终端进行数据处理,得到数据处理结果;
发送单元,用于将所述数据处理结果发送至所述客户端。
CN201710030292.7A 2017-01-17 2017-01-17 基于C语言的Nginx web后端数据处理方法及系统 Active CN106777346B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710030292.7A CN106777346B (zh) 2017-01-17 2017-01-17 基于C语言的Nginx web后端数据处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710030292.7A CN106777346B (zh) 2017-01-17 2017-01-17 基于C语言的Nginx web后端数据处理方法及系统

Publications (2)

Publication Number Publication Date
CN106777346A CN106777346A (zh) 2017-05-31
CN106777346B true CN106777346B (zh) 2018-07-06

Family

ID=58945910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710030292.7A Active CN106777346B (zh) 2017-01-17 2017-01-17 基于C语言的Nginx web后端数据处理方法及系统

Country Status (1)

Country Link
CN (1) CN106777346B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109302493B (zh) * 2018-11-15 2021-06-22 北京金山云网络技术有限公司 一种用户信息共享方法、装置、电子设备及存储介质
CN112187957B (zh) * 2020-10-30 2023-06-06 杭州安恒信息技术股份有限公司 一种服务器监控方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064932A (zh) * 2012-12-24 2013-04-24 乐视网信息技术(北京)股份有限公司 一种静态化页面的处理系统和方法
CN104243620A (zh) * 2014-10-17 2014-12-24 浪潮电子信息产业股份有限公司 一种高性能的web生产环境架构
CN106326213A (zh) * 2015-06-19 2017-01-11 北京京东尚科信息技术有限公司 一种对web站点进行翻译的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064932A (zh) * 2012-12-24 2013-04-24 乐视网信息技术(北京)股份有限公司 一种静态化页面的处理系统和方法
CN104243620A (zh) * 2014-10-17 2014-12-24 浪潮电子信息产业股份有限公司 一种高性能的web生产环境架构
CN106326213A (zh) * 2015-06-19 2017-01-11 北京京东尚科信息技术有限公司 一种对web站点进行翻译的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Nginx的Web服务器性能优化研究;黄静 等;《浙江理工大学学报(自然科学版)》;20160731;第35卷(第4期);第600-606页 *

Also Published As

Publication number Publication date
CN106777346A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
TWI654860B (zh) Hybrid application client resource calling method, client and system
US8195633B2 (en) Enabling interactive integration of network-accessible applications in a content aggregation framework
US8875135B2 (en) Assigning component operations of a task to multiple servers using orchestrated web service proxy
JP2017168139A5 (ja) 遠隔プロセス実行のためのコンピュータで実現される方法および遠隔プロセス実行のためのシステム
US11799849B2 (en) Secure web application delivery platform
CN109672662A (zh) 一种微服务环境中服务依赖关系构建方法
US20180307508A1 (en) Implementing web browser in virtual machine
CN106777346B (zh) 基于C语言的Nginx web后端数据处理方法及系统
CN113676563B (zh) 内容分发网络服务的调度方法、装置、设备及存储介质
CN103532755B (zh) 分布式异步事件的处理方法及系统
US20090063687A1 (en) Hybrid connection model
CN103716319B (zh) 一种Web访问优化的装置和方法
Sysel et al. An educational http proxy server
US10334014B2 (en) Accessing connected service resources in a distributed application programming interface
TWI294087B (en) Systems and methods for file transfer management
CN112492055A (zh) 一种传输协议重定向的方法、装置、设备及可读存储介质
CN106559468A (zh) 一种访问数据的方法
CN109495319A (zh) Cdn节点的故障信息确定方法、装置及设备
US11457050B1 (en) Ephemeral data stream service
CN115516842A (zh) 编排代理服务
CN109460215A (zh) 应用控制方法及装置
CN114221945B (zh) 通信方法、装置、计算设备及计算机可读存储介质
Fagerberg Optimising clients with API Gateways
Ganaputra et al. Asynchronous publish/subscribe architecture over WebSocket for building real-time web applications
CN110941498B (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
GR01 Patent grant
GR01 Patent grant