0x00 简介
Althttpd是SQLite 作者最新开源的 Web 服务器,我们可以先来看下这个项目的时间线。
可以看出来开源工作是最近才开始的,但是实际上 althttpd 从 2004 年开始就在支撑 https://sqlite.org/ 网站的运行,althttpd 的设计目标就是为了简单、安全同时低资源消耗。
在 2018 年,http://sqlite.org 每天要响应 50 万的 HTTP 请求,而只用了价值 40 美金的服务器,而且服务器处于很低的负载(0.1 或者 0.2),可以看出其性能还是不错的。
我们来看下 althttpd 的代码,项目实际只有一个 c 文件,整体行数也不多,是一个非常不错的学习项目。
上面这段引用自这里 ,最新内容也可以直接访问这里
0x01 跑起来看看
本次测试使用一台轻量服务器,系统镜像为 CentOS 8.2
- 下载源码 althttpd.c
- 编译源码
gcc -Os -o /usr/bin/althttpd althttpd.c
- 新建目录
~/www/default.website
,在目录中创建一个HTML文件index.html
- 运行命令
althttpd -root ~/www/ -port 80 -user ftp
0x02 补充说明
- althttpd的逻辑是,如果我访问是的 abc.com这个域名,它就会去找 abc.website这个目录里面的内容,如果没找到,就使用default.website。所以我这里直接使用default.website目录测试。
- 上面步骤4里面,我指定了使用ftp用户运行,原因是我一开始没指定用户,使用的是root用户登录运行,提示我不能使用root用户,所以我就随便用了个系统内置的用户跑一下试试。实际使用的时候,可以专门创建一个用户。
- 我这里让althttpd独立运行, 自身监听80端口,但是好像官方的建议是从 xinetd 或 stunnel4 启动,这里我就不折腾了。
0x03 最后
这个东西有啥用呢,其实一般情况下也没啥用。
这个内存占用是真的低: