SkillAgentSearch skills...

Ejet

eJet 是一个轻量级、高性能、嵌入式Web服务器,实现HTTP/1.1全栈功能,包括TLS/SSL、正向代理、反向代理、FastCGI、Cookie、Web Cache、访问日志、HTTP变量、HTTP Script脚本程序、JSon配置文件、虚拟主机、HTTP Location、Rewrite/Try_files等指令、HTTP Tunnel、应用回调和动态库回调等,是超大文件上传下载、网站、PHP、CDN、Web Cache、嵌入式Web等服务的理想平台

Install / Use

/learn @kehengzhong/Ejet

README

eJet - a lightweight high-performance embeded Web Server

eJet is a lightweight, high-performance, embedded Web server that implements the full-stack functions of the HTTP/1.1 protocol, including TLS/SSL, Forward/Reverse Proxy, FastCGI, Cookie, Web Cache, Access Log, HTTP Variable, HTTP Script, JSon-style configuration file, Virtual Host, HTTP Location, Directives such as Rewrite/Try_files, HTTP Tunnel, Application/Dynamic-Lib Callbacks, etc. It's an ideal service platform hosting for upload/download of super-large files, website, PHP, CDN, Web Cache, embedded Web, etc.

eJet 是一个轻量级、高性能、嵌入式Web服务器,实现HTTP/1.1协议全栈功能,包括TLS/SSL、正向代理、反向代理、FastCGI、Cookie、Web Cache、访问日志、HTTP变量、HTTP Script脚本程序、JSon配置文件、虚拟主机、HTTP Location、Rewrite/Try_files等指令、HTTP Tunnel、应用回调和动态库回调等,是承载超大文件上传下载、网站、PHP、CDN、Web Cache、嵌入式Web等服务的理想平台。

目录


一. eJet是什么?

eJet Web服务器是利用 adif数据结构和算法库ePump框架,用C语言开发的一个事件驱动模型、多线程、大并发连接的轻量级的高性能Web服务器,支持HTTP/1.0和HTTP/1.1协议,并支持HTTP Proxy、Tunnel等功能。

在Linux下,eJet Web服务器编译成动态库或静态库的大小约为300K,可集成嵌入到任何应用程序中,增加应用程序使用HTTP通信和服务承载的能力,使其具备像Nginx服务器一样强大的Web功能。

eJet Web服务器完全构建在ePump框架之上,利用ePump框架的多线程事件驱动模型,实现完整的HTTP请求<-->HTTP响应事务流程。eJet并没有创建进程或线程,利用ePump框架的事件驱动多线程,高效地运用服务器的CPU处理能力。

eJet接收和处理各TCP连接上的HTTP请求头和请求体,经过解析、校验、关联、实例化等处理,执行HTTP请求,或获取Web服务器特定目录下的文件,或代理客户端发起向源HTTP服务器的请求,或将HTTP请求通过FastCGI接口转发到CGI服务器,或将客户端HTTP请求交给上层设置的回调函数处理等。所有处理结果,最终以HTTP响应方式,包括HTTP响应头和响应体,通过客户端建立的TCP连接,返回给客户端。该TCP连接可以Pipe-line方式继续发送和接收多个HTTP请求和响应。

eJet服务器提供了作为Web服务器所需的其他各项功能,包括基于TLS/SSL的安全和加密传输、虚拟主机、资源位置Location的各种匹配策略、对请求URI执行动态脚本指令(包括rewrite、reply、return、try_files等)、在配置文件中使用HTTP变量、正向代理和反向代理、HTTP Proxy、FastCGI、HTTP Proxy Cache功能、HTTP Tunnel、MultiPart文件上传、动态库回调或接口函数回调机制、HTTP日志功能、CDN分发等。

eJet Web服务器采用JSon格式的配置文件,进行系统配置管理。对JSon语法做了一定的扩展,使得JSon支持include文件指令,支持嵌入Script脚本程序语言。使用扩展JSon功能的配置文件,可更加灵活、方便地扩展Web服务功能。

eJet系统大量采用了Zero-Copy、内存池、缓存等技术,来提升Web服务器处理性能和效率,加快了请求响应的处理速度,支撑更大规模的并发处理能力,支持更大规模的网络吞吐容量等。

eJet Web服务器既可以面向程序员、系统架构师提供应用程序开发接口或直接嵌入到现有系统中,也可以面向运维工程师部署完全类似Nginx Web服务器、Web Cache、CDN回源等商业服务系统,还是面向程序员提供学习、研究开发框架、通信系统等的理想平台。

开发eJet Web服务器的原则是尽可能不依赖于第三方代码和库,降低版权和复杂部署等因素带来的潜在风险。系统使用的第三方代码或库主要为:OpenSSL库、Linux系统自带的符合POSIX标准的正则表达式regex库。gzip压缩需要依赖zlib开源库,目前没有添加进来,所以eJet Web服务器暂时不提供gzip、deflate的压缩支持。

二. eJet系统流程和工作原理

2.1 Web服务器基本功能

Web服务器,常称网站服务器,将具有独立IP地址的服务器上承载的图、文、音频、视频和数据文件等资源,以URL方式来标识,以HTTP协议对外提供下载、浏览、上传、交互等服务。HTTP协议是一个请求-响应的事务型协议,Web服务器的基本工作流程基本是围绕请求应答来完成的,具体包括:

  • 建立连接 —— 接受客户端连接,或
View on GitHub
GitHub Stars37
CategoryDevelopment
Updated1mo ago
Forks14

Languages

C

Security Score

95/100

Audited on Feb 10, 2026

No findings