Skip to content

vatica/TinyWebSever-CPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TinyWebSever-CPP

LICENSE ubuntu mysql

基于C++开发的简单Web服务器:sunny:

更新日志

  • 2021.11.30 发布第一个版本,来自于qinguoyi/TinyWebServer
  • 2021.12.09 添加WebBench压力测试。
  • 暂无。

目录

  1. 概述
  2. 运行
  3. 测试
  4. 庖丁解牛

概述

框架

image

运行

快速运行

  • 服务器测试环境
    • Ubuntu版本18.04
    • MySQL版本5.7.36
  • 浏览器测试环境
    • Windows、Linux均可
    • Chrome、FireFox
    • 其他浏览器暂无测试
  • 测试前确认已安装MySQL数据库并启动MySQL服务
    // 建立yourdb库
    create database yourdb;
    
    // 创建user表
    USE yourdb;
    CREATE TABLE user(
        username char(50) NULL,
        passwd char(50) NULL
    )ENGINE=InnoDB;
    
    // 添加数据
    INSERT INTO user(username, passwd) VALUES('name', 'passwd');
  • 修改config.h中的数据库初始化信息
    // 数据库用户名、密码、库名
    string user = "username";
    string password = "password";
    string database_name = "yourdb";
  • build
    make server
    
  • 启动server
    ./bin/server
    
  • 浏览器端
    http://ip:port
    

个性化运行

./bin/server [-p port] [-l LOGWrite] [-m TRIGMode] [-o OPT_LINGER] [-s sql_num] [-t thread_num] [-c close_log] [-a actor_model]
  • -p,自定义端口号
    • 默认8081
  • -l,选择日志写入方式,默认同步写入
    • 0,同步写入
    • 1,异步写入
  • -m,listenfd和connfd的模式组合,默认使用LT + LT
    • 0,表示使用LT + LT
    • 1,表示使用LT + ET
    • 2,表示使用ET + LT
    • 3,表示使用ET + ET
  • -o,优雅关闭连接,默认不使用
    • 0,不使用
    • 1,使用
  • -s,数据库连接数量
    • 默认为8
  • -t,线程数量
    • 默认为8
  • -c,关闭日志,默认打开
    • 0,打开日志
    • 1,关闭日志
  • -a,选择反应堆模型,默认Proactor
    • 0,Proactor模型
    • 1,Reactor模型

示例

./bin/server -p 8081 -l 1 -m 0 -o 1 -s 10 -t 10 -c 1 -a 1

测试

测试工具

WebBench

测试示例

webbench -c 10000 -t 5 http://127.0.0.1:port/
  • -c,客户端数
  • -t,运行时间

测试结果

Note:关闭日志后再测试。

Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Request:
GET / HTTP/1.0
User-Agent: WebBench 1.5
Host: 127.0.0.1


Runing info: 10000 clients, running 5 sec.

Speed=3345264 pages/min, 6244448 bytes/sec.
Requests: 278772 susceed, 0 failed.
  • Proactor,LT + LT,55754 QPS

庖丁解牛

About

基于C++开发的简单Web服务器:sunny:

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published