您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
web服务器下载(web服务器是啥啊)
虚拟主机,资源,位置web服务器下载(web服务器是啥啊)
发布时间:2020-12-06加入收藏来源:互联网点击:
很多朋友想了解关于客户端服务器的一些资料信息,下面是小编整理的与客户端服务器相关的内容分享给大家,一起来看看吧。很多朋友想了解关于系统配置的一些资料信息,下面是小编整理的与系统配置相关的内容分享给大家,一起来看看吧。
服务器下载(什么是web服务器)
EJet Web server是一个轻量级的高性能Web服务器,采用事件驱动模型,多线程,大并发连接,在GitHub上使用开源项目adif数据结构和算法库以及ePump框架开发。支持HTTP/1.0和HTTP/1.1协议,支持HTTP代理、隧道等功能。
在Linux下,eJet Web server编译成300K左右大小的动态库或静态库,可以集成和嵌入到任何应用中,增加了应用使用HTTP通信和服务承载的能力,使其具有和Nginx server一样强大的Web功能。
EJEWeb服务器完全建立在ePump框架之上,利用ePump框架的多线程事件驱动模型实现完整的HTTP请求- HTTP响应事务流程。EJet没有创建进程或线程,它使用ePump框架的事件驱动多线程来高效利用服务器的CPU处理能力。
EJet接收并处理每个TCP连接上的HTTP请求头和请求体,经过解析、检查、关联、实例化等过程后,执行HTTP请求,或者获取Web服务器特定目录下的文件,或者代表客户端向源HTTP服务器发起请求,或者通过FastCGI接口将HTTP请求转发给CGI服务器,或者将客户端HTTP请求交给上层设置的回调函数进行处理。所有的处理结果最终都以HTTP响应返回给客户端,包括HTTP响应头和响应体,通过客户端建立的TCP连接。这个TCP连接可以继续以管道方式发送和接收多个HTTP请求和响应。
EJet server提供了作为Web服务器所需的其他功能,包括基于TLS/SSL的安全加密传输,虚拟主机和资源位置的各种匹配策略,执行动态脚本指令(包括rewrite、reply、return、try_files等。)对请求URIs,使用HTTP变量,正向代理和反向代理,HTTP代理,FastCGI,HTTP代理缓存功能,HTTP隧道,多部分文件上传,动态库回调或接口函数回调机制,HTTP日志功能,CDN分发等。
EJB服务器采用JSon格式的配置文件进行系统配置管理。扩展了JSon语法,使JSon支持包含文件指令和嵌入脚本的脚本语言。通过使用扩展JSon功能的配置文件,可以更加灵活方便地扩展Web服务的功能。
EJet系统使用了大量的技术,如零拷贝、内存池、缓存等。提高Web服务器的处理性能和效率,加快请求响应的处理速度,支持更大规模的并发处理能力,支持更大规模的网络吞吐能力等。
EJEWeb server不仅可以为程序员和系统架构师提供应用开发接口或者直接嵌入现有系统,还可以为运维工程师部署Nginx Web server、Web Cache、CDN back source等商业服务系统。也是程序员提供学习、研发框架和交流体系的理想平台。
开发eJet Web server的原则是尽可能不依赖第三方代码和库,减少版权和复杂部署带来的潜在风险。系统使用的第三方代码或库主要有OpenSSL库和符合POSIX标准的Linux系统自带的正则表达式regex库。Gzip压缩依赖于zlib开源库,目前没有添加,所以eJet Web server暂时不提供对gzip和deflate的压缩支持。
二. JSon格式的配置文件
2.1 JSON语法特点
JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON的文本格式独立于编程语言。它使用name:value存储名称和数据,可以存储数字、字符串、逻辑值、数组、对象等数据类型。它是数据交换的理想语法格式,简洁有力,易于扩展和读写,便于程序分析和生成。
由于JSON语法简单可扩展,采用可以保存各种数据类型的名称/值对语法,可以嵌套JSon子对象,特别符合配置文件的配置属性,eJet系统使用JSon格式保存、传输和解析系统配置文件。
2.2 eJet配置文件对JSON的扩展
2.2.1 分隔符
EJET系统使用adif中的JSon库解析和访问配置文件信息。JSon语法的默认格式使用冒号(:)来分隔名称和值,使用单引号(')或双引号(')来包含名称和值字符串,使用逗号(,)作为名称/值对的分隔符,使用括号[]表示数组,使用花括号{}表示对象。
EJet系统采用JSon作为配置文件语法规范。为了兼容传统配置文件的编写习惯,对JSon的基本语法进行了扩展,即将分隔名称和值的冒号(:)替换为等号(=),将分隔名称/值对的逗号(,)替换为分量符号(;),其他基本语法不变。
2.2.2 include指令
由于配置信息数据量大,需要使用不同的文件来保存不同的配置信息。借鉴C语言/PHP语言的include宏指令,eJet系统的JSon语法引入了include指令。在扩展语法中,' include '将作为JSon语法的关键字,不会被当作对象名和值内容,而是作为一个特殊指令,将另一个文件嵌入到当前位置,以供后续处理。其语法规范如下:
include <配置文件名>;
解析JSon内容时,如果遇到include指令,就将include指令后面的文件内容加载到当前指令位置,作为当前文件内容的一部分,进行解析处理。
2.2.3 单行注释和多行注释
为了增加配置文件中代码的可读性,需要对相关的定义添加详细说明、注解等内容,方便使用人员快速阅读和理解。
为支持注释功能,eJet系统的配置文件对JSON语法做了相应扩展,增加了单行注释符号#和多行注释(/* */),其语法规范如下:
# 这是单行注释,如果井号(#)不在JSon某个Key-Value对的引号里面,那么以井号开头,井号后面的内容都是注释/* 注意:多行注释是以连在一起的/和*开始 以连在一起的*和/结尾,中间的内容都是注释 多行注释开闭符号,必须不能在Key-Value对的引号里面 */
注释的内容在解析时直接忽略跳过,不会被系统解析和处理。
2.2.4 script语法
使用JSON格式的数据都是由name/value对构成,eJet系统中需要在配置文件中支持Script脚本程序,灵活动态地处理HTTP请求。
eJet配置文件对JSON语法格式扩展了一种固定名称的script对象,将名称"script"作为特殊对象的名称关键字,即以script为名称的对象,其内容不能作为JSON子对象处理,而是作为Script脚本程序内容,存放在对象名为script的对象中。其语法规范如下:
script = { if ($request_uri ~* '^/topic/[0-9](*)/(.*)\.mp4$') { set $video_flag 1; }};
在同一个JSon对象下,可以有多个script对象,自动构成script对象数组。
另外,使用特殊的开闭标签<script>和</script>,也可以定义脚本程序。在这两个开闭标签中间的内容,即是Script脚本程序,并将这些内容存储到配置文件定义的任意name名称对象中,其语法规范如下:
cache file = <script> if ($request_uri ~* 'laoooke') return "${host_name}_${server_port}${req_path_only}${req_file_only}"; else if (!-f $root$request_path) { return "${host_name}_${server_port}${req_path_only}${index}"; } else if (!-x $root$request_path) { return "$root$request_path is not an executable file"; } else return "${request_header[host]}${req_path_only}else.html"; </script>;
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |