项目简介
本项目是一个基于C++11的多线程Web服务器,支持HTTP的GET和HEAD请求,并提供长连接支持。服务器采用Reactor并发模型,利用异步日志系统记录日志,同时使用Epoll边沿触发的IO多路复用技术实现高效的I/O操作。
项目的主要特性和功能
- 并发模型:采用Reactor并发模型,主Reactor负责接收连接,多个从Reactor处理连接的I/O事件。
- 异步日志系统:运用多缓冲区技术实现异步日志系统,提升日志记录效率。
- Epoll技术:借助Epoll边沿触发的IO多路复用技术,达成非阻塞I/O操作。
- 多线程支持:利用线程池和多线程技术,充分发挥多核CPU性能,避免线程频繁创建和销毁的开销。
- 定时器管理:使用基于小根堆的定时器管理超时请求,保障资源有效利用。
- HTTP请求解析:通过状态机解析HTTP请求,支持管线化请求。
- 优雅关闭连接:支持优雅关闭连接,确保连接正常终止。
安装使用步骤
安装
- 复制项目到本地(此处原文档未给出具体命令)。
- 进入项目目录并执行构建脚本:
bash cd tiny_WebServer ./build.sh
使用
启动服务器:
bash
./tiny_WebServer [-t thread_numbers] [-p port] [-l log_file_path]
示例:
bash
./tiny_WebServer -t 4 -p 80 -l ./webserver.log
参数说明:
- -t
:指定线程数量。
- -p
:指定服务器监听的端口号。
- -l
:指定日志文件的路径。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】