项目简介
本项目是基于C++11编写的轻量级高性能Web服务器。可解析get、head请求,处理静态资源,支持HTTP长连接,具备异步日志功能记录服务器运行状态,同时采用Cache机制提升服务器响应速度。
项目的主要特性和功能
- IO多路复用与框架模式:运用Epoll边沿触发的IO多路复用技术,结合Reactor模式构建程序框架,高效处理大量并发连接。
- 多线程与线程池:利用多线程发挥多核CPU性能,线程池避免线程频繁创建销毁开销,采用生产者消费者模型处理任务。
- Cache机制:将用户常访问页面存入Cache,减少磁盘读写;用LRU算法淘汰Cache文件,保证页面命中率。
- 线程安全保障:使用Mutex互斥锁和condition条件变量确保线程安全,采用Segtion lock分段锁机制提高多线程运行效率。
- 请求解析:通过状态机机制解析Http请求,处理所有合法用户请求。
- 内存管理:采用智能指针,降低内存泄漏风险。
- 高效缓冲区:构建的高效buffer支持自适应扩容,内存连续,必要时可利用临时栈上空间暂存数据。
- 异步日志:高效异步日志库可记录服务器运行状态,每秒可写百万条日志到磁盘。
- 定时器:使用基于小根堆的定时器关闭超时请求,避免资源长期占用。
安装使用步骤
- 确保环境为CentOS 7.2,编译器为GCC 4.8.5。
- 进入项目源码文件目录,执行
make
命令进行编译。 - 编译完成后,执行
./web_final
命令启动服务器。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】