nxweb 是采用 Python 和 C 编写的快速而且轻量级的 Web 服务器软件。
特性:
性能优异
可处理数千并发
内存占用小
事件驱动、多线程模型
代码量小
简单的 C API
体面的 HTTP 协议处理
支持 keep-alive 连接
支持 chunked 请求和响应
支持 SSL (via GNUTLS)
支持 HTTP proxy (with keep-alive connection pooling)
支持文件缓存
cached content can be served when backend is unavailable
非堵塞 sendfile 支持 (with configurable small file memory cache)
cacheable image thumbnails with watermarks (via ImageMagick)
basic server-side includes (SSI)
subrequests
modular design for developers
can be run as daemon; relaunches itself on error
open source
性能比较:
Test | NXWEB | G-WAN | libevent | microhttpd | mongoose | nginx |
---|---|---|---|---|---|---|
1. hello 100 ka | 200 / 121 | 144 | 30 / 69 | 132 | 190 | 141 |
2. hello 100 | 51 / 42 | 41 | 15 / 32 | 13 | 34 | 41 |
3. hello 1000 ka | 160 / 115 | 130 | 21 / 43 | 130 | 180 | 124 |
4. hello 1000 | 46 / 38 | 38 | 14 / 30 | 12 | 35 | 40 |
5. hello 10000 ka | 115 / 84 | 103 | 23 / 40 | 116 | 119 | 108 |
5.1. real concurrency | 9500-10000 | 9500-10000 | 10000 | 600-1000 | 1500-1700 | 4000-7000 |
5.2. memory footprint | 28Mb | 105Mb | - | - | - | 4x15Mb |
6. hello 10000 | 38 / 34 | 33 | 14 / 27 | 9 | 20 | 29 |
7. file 2.3K ka | 133 | NA | NA | NA | 5 | 98 |
7.1. file 2.3K ka cached | 145 | 120 | NA | NA | NA | NA |
8. file 2.3K | 42 | NA | NA | NA | 12 | 39 |
8.1. file 2.3K cached | 43 | 33 | NA | NA | NA | NA |
9. file 100K ka | 36 | 15 | NA | NA | 3.6 | 32 |
10. file 100K | 23 | 12 | NA | NA | 3.5 | 21 |
11. file 2.1M ka | 3.2 | 0.7 | NA | NA | 0.6 | 2.6 |
12. file 2.1M | 2.3 | 0.6 | NA | NA | 0.5 | 2.0 |
https://bitbucket.org/yarosla/nxweb/downloads nxweb.org/blog-post/1444/sample-c-handler-for-nxweb 1../nxweb -d -l nxweb_error_log -H :80 -w ../test1/ 启动nxweb启动指定对应的工作目录 2.nxwebc sample_handler.c -o s
NXWEB何许人也?莫非来自星星的你? 好吧,其实NXWEB是C语言写的一个超快超轻量级的web服务器,就这么简单。作者:Yaroslav Stavnichiy,官网 也许有人会有疑问,webserver领域既然已经有老牌劲旅Apache,新科状元Nginx,我们还需要其他web服务器吗?其实互联网的复杂性总会产生各种各样的需求,比如功能单一,简洁,追求高并发,占用系统性能少,超轻量级的web服务
本文向大家介绍提高iOS开发效率的小技巧与思路,包括了提高iOS开发效率的小技巧与思路的使用技巧和注意事项,需要的朋友参考一下 先用一张图展示学习iOS开发应该掌握的知识体系: 1.全图片作为背景的时候,可能遇到的问题。,滑回的时候,图片停留了一会才滑回去。 原因: 这种界面一般使用一般用imageView的第三种填充方式。 这种填充方式可以让图片不被压缩变形的前提下,尽可能去填充整个控件,但是设
本文向大家介绍Python 高效编程技巧分享,包括了Python 高效编程技巧分享的使用技巧和注意事项,需要的朋友参考一下 一、根据条件在序列中筛选数据 假设有一个数字列表 data, 过滤列表中的负数 学生的数学分数以字典形式存储,筛选其中分数大于 80 分的同学 二、对字典的键值对进行翻转 使用 zip() 函数 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,
本文向大家介绍提高php编程效率技巧,包括了提高php编程效率技巧的使用技巧和注意事项,需要的朋友参考一下 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号)。 1、如果能将类的方
本文向大家介绍提高iOS开发的小技巧和思路小结 (二),包括了提高iOS开发的小技巧和思路小结 (二)的使用技巧和注意事项,需要的朋友参考一下 前言 之前跟大家分享过一篇《提高iOS开发的小技巧和思路》,但是里面整理的不够全面,通过最近这段时间的整理学习,又整理了一些小技巧和思路分享给大家,下面话不多说了,来看看详细的介绍吧。 一、如何让你的app在后台持续运行一段时间 iOS的app在按下hom
主要内容:1.系统拆分,2.解耦,3.异步,4.重试,5.补偿,6.备份,7.多活策略,8.隔离,9.限流,10.熔断,11.降级1.系统拆分 微服务架构,将一个复杂的业务域按DDD的思想拆分成若干子系统,每个子系统负责专属的业务功能,做好垂直化建设,各个子系统之间做好边界隔离,降低风险蔓延。 2.解耦 高内聚、低耦合。小到接口抽象、MVC 分层,大到 SOLID 原则、23种设计模式。核心都是降低不同模块间的耦合度,避免一处错误改动影响到整个系统。 就以开闭原则为例,对扩展是开放的,对修改是关
本文向大家介绍提高JavaScript执行效率的23个实用技巧,包括了提高JavaScript执行效率的23个实用技巧的使用技巧和注意事项,需要的朋友参考一下 本文向大家分享23种JavaScript提高执行效率的小技巧、最佳实践等非常实用的内容。当然JavaScript的实用技巧不止这些,还有很多即好玩又能提高程序运行效率的技巧,以后我们会继续分享给大家。 文中所提供的代码片段都已经过最新版的C