Althttpd
Althttpd是一個(gè)簡(jiǎn)單的web服務(wù)器,自從2004年就在sqlite.org站點(diǎn)投入使用,主要追求輕量化,安全性和低資源使用1。它可以從xinetd或stunnel4啟動(dòng),也可以作為一個(gè)獨(dú)立的服務(wù)器運(yùn)行1。它支持虛擬站點(diǎn),chroot jail,統(tǒng)一的日志文件,CGI和SCGI1。它沒(méi)有配置文件,所有的配置都通過(guò)命令行參數(shù)來(lái)設(shè)置1。它的源代碼只有一個(gè)C文件,沒(méi)有其他依賴(lài)1。
Althttpd的原理是:每個(gè)進(jìn)入的連接都由一個(gè)單獨(dú)的進(jìn)程來(lái)處理,這個(gè)進(jìn)程只專(zhuān)注于服務(wù)這個(gè)連接1。一個(gè)althttpd進(jìn)程可以處理同一連接上的一個(gè)或多個(gè)HTTP請(qǐng)求1。當(dāng)連接關(guān)閉時(shí),althttpd進(jìn)程退出1。這樣的設(shè)計(jì)使得althttpd的源代碼簡(jiǎn)單,便于安全審計(jì)和分析1。
Althttpd的用法是:通過(guò)gcc編譯althttpd.c文件,生成可執(zhí)行文件1。然后根據(jù)需要添加命令行參數(shù)來(lái)啟動(dòng)althttpd1。例如:
- 通過(guò)xinetd啟動(dòng):創(chuàng)建一個(gè)/etc/xinetd.d/http文件,指定althttpd的參數(shù)1。
- 通過(guò)stunnel4啟動(dòng):創(chuàng)建一個(gè)/etc/stunnel/stunnel.conf文件,指定althttpd的參數(shù)1。
- 作為獨(dú)立服務(wù)器啟動(dòng):添加-port N參數(shù)來(lái)指定監(jiān)聽(tīng)的端口號(hào)1。如果需要支持TLS連接,還要添加-cert和-pkey參數(shù)來(lái)指定證書(shū)和私鑰文件1。
更多細(xì)節(jié)可以參考[Althttpd: The Althttpd Webserver - SQLite](https://sqlite.org/althttpd/doc/trunk/althttpd.md)這篇文檔。