HTTP 服務器:Tiny httpd
Tinyhttpd 是一個支持多端口監聽的 HTTP 服務器,基于 QT QTcpServer 封裝。
目錄結構
[src] ├── LICENSE #MIT許可證 ├── README.md #使用說明 ├── tinyhttpd.pro #工程文件主程序
├── main.cpp #啟動多端口監聽 ├── serverthread.cpp #QThread子類線程,設置IP,port及啟動Server ├── server.cpp #QTcpServer子類,多線程,每個線程對應一個port監聽 ├── request.cpp #接受client請求,多線程,每個線程對應一個請求 ├── response.cpp #構造返回Request Headers ├── responsefile.cpp #返回網頁 ├── responsedictionary.cpp#列舉url對應目錄 ├── mime.cpp #設定擴展應用 ├── common.cpp #獲取當前時間 ├── log.cpp #日志系統
配置
├── httpstatus.h #狀態碼 ├── tinyhttpd.ini #服務器配置文件 ├── tinyhttpd.log #服務器日志 ├── mime.txt #mime配置 [www] #網站根目錄 ├──static ├──index.html [response] #網頁返回狀態網頁 ├── 301.html #301 Permanently Moved ├── 304.html #304 Not Modified ├── 403.html #403 Forbidden └── 404.html #404 Not Found</pre>
Todo
-
加入Redis數據庫支持,存儲訪問數據
-
加入QT界面,顯示實時連接情況
運行環境
-
Linux/Mac OS X
-
QT4/QT5
使用
-
打開配置文件 tinyhttpd.ini 配置服務器選項。
[httpd] port=1234|1235|1236 #配置服務器監聽的多個端口,用|隔開 ipv6=true #配置ipv6支持 logfile=tinyhttpd.log show_log=true [site] root_path=/home/huangyi/Practice/QT/tinyhttpd/www #網站根目錄 dir_listing=true #是否允許獲取文件樹,否則返回403 forbidden #index="index.html", "index.htm" #配置后,直接跳到網頁index.html,不列出文件樹 [request] buffer_size=1048576 #為網頁文件分配的內存空間 keep_alive_enable=true #是否打開長連接 keep_alive_default=true keep_alive_timeout=30 #長連接timeout keep_alive_timeout_max=300