Linux下C++轻量级Web服务器(含源码和测试地址)

Posted Zhang Wenhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下C++轻量级Web服务器(含源码和测试地址)相关的知识,希望对你有一定的参考价值。

各位小伙伴们,大家好

源码

Linux下C++轻量级Web服务器TinyWebServer

测试地址

http://101.37.19.43/
公网可访问
访问量通过压力测试

./webbench-1.5/webbench -c 100 -t 10 http://101.37.19.43:80/
./webbench-1.5/webbench -c 1000 -t 10 http://101.37.19.43:80/


访问量可以超过1000

运行结果

欢迎页面

注册

登录

内容

菜单

文件上传

图片


参考html/javascript实现简单的上传

视频


参考 https://developer.mozilla.org/zh-CN/docs/Web/html/Element/video

内容有点粗糙,各位小伙伴有什么建议尽管在评论区提,谢谢

总结

之前往往用java和tomcat搭建服务器,这次尝试用C++在Linux下搭建轻量级Web服务器,使用的技术包括:

  • 使用 线程池 + 非阻塞socket + epoll(ET和LT均实现) + 事件处理(Reactor和模拟Proactor均实现)
    的并发模型
  • 使用状态机解析HTTP请求报文,支持解析GET和POST请求
  • 访问服务器数据库实现web端用户注册、登录功能,可以请求服务器图片和视频文件
  • 实现同步/异步日志系统,记录服务器运行状态

轻量级web压测工具http_load的使用

一、http_load简介
基于linux平台的一款针对web服务器的性能压测工具

优点:
    1.基于命令行,简单、易于上手。
    2.小巧、轻便。
缺点:
    1.仅使用于基于web页面的性能测试。
    2.测试结果分析有限。

二、编译及其安装
1.下载源码

http_load主页:http://www.acme.com/software/http_load/

wget http://www.acme.com/software/http_load/

2.解压:

tar xf http_load-12mar2006.tar.gz

3.编译安装
http_load采用C语言编写,编译安装需要gcc编辑器,如果没有则需要先安装gcc

    yum install gcc
    cd http_load-12mar2006
    make
    make install

如果出现以下错误:

    cp:无法创建文件/usr/local/man/man1:没有那个文件目录
    则执行:
    mkdir /usr/local/man -p 

三、使用方法

1.编辑urls文件,在文件中编辑需要测试的URL。
2.命令
    ./http_load options
    options:
        -p(parallel) 并发的用户进程数
        -f(fetches) 总计的访问次数
        -r(rate) 每秒的访问频率
        -s(seconds) 连续的访问时间
    例:
    ./http_load -p 1021 -s 10 urls

以上是关于Linux下C++轻量级Web服务器(含源码和测试地址)的主要内容,如果未能解决你的问题,请参考以下文章

C++轻量级Web服务器TinyWebServer源码分析之threadpool篇

Web服务器项目详解 - 00 项目概述

10.折线连接--WEB设计器JQUERY插件讲解(含源码)

轻量级web压测工具http_load的使用

12.手机端如何拖动组件--WEB设计器JQUERY插件讲解(含源码)

虚幻引擎UEUE5 实现WEB和UE通讯思路(含工程源码)