Althttpd初体验

2022-01-08 17:26:26 浏览数 (1)

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

  1. 下载源码 althttpd.c
  2. 编译源码 gcc -Os -o /usr/bin/althttpd althttpd.c
  3. 新建目录 ~/www/default.website,在目录中创建一个HTML文件index.html
  4. 运行命令 althttpd -root ~/www/ -port 80 -user ftp

0x02 补充说明

  1. althttpd的逻辑是,如果我访问是的 abc.com这个域名,它就会去找 abc.website这个目录里面的内容,如果没找到,就使用default.website。所以我这里直接使用default.website目录测试。
  2. 上面步骤4里面,我指定了使用ftp用户运行,原因是我一开始没指定用户,使用的是root用户登录运行,提示我不能使用root用户,所以我就随便用了个系统内置的用户跑一下试试。实际使用的时候,可以专门创建一个用户。
  3. 我这里让althttpd独立运行, 自身监听80端口,但是好像官方的建议是从 xinetd 或 stunnel4 启动,这里我就不折腾了。

0x03 最后

这个东西有啥用呢,其实一般情况下也没啥用。

这个内存占用是真的低:

没人访问的时候没人访问的时候
一个人访问一次的时候一个人访问一次的时候

0 人点赞