Linux下的简易web服务器,实现web端用户注册,登录功能,经压力测试可以实现上万的并发连接数据交换.
- 注册演示
- 登录演示
Webbench对服务器进行压力测试,可以实现上万的并发连接.
- 并发连接总数:10500
- 访问服务器时间:5s
- 每秒钟响应请求数:552852 pages/min
- 每秒钟传输数据量:1031990 bytes/sec
- 所有访问均成功
- 判断是否注册
- 注册
- 注册失败提示
- 登录
- 登录失败提示
-
服务器测试环境
- Ubuntu版本16.04
- MySQL版本5.7.29
-
测试前确认已安装MySQL数据库
//建立yourdb库 create database yourdb set utf8; //创建user表 USE yourdb; CREATE TABLE user( username char(50) NULL, passwd char(50) NULL )ENGINE=InnoDB; //添加数据 INSERT INTO user(username, passwd) VALUES('name', 'passwd');
-
修改main.c中的数据库初始化信息
//root root为服务器数据库的登录名和密码 connection_pool *connPool=connection_pool::GetInstance("localhost","root","root","yourdb",3306,5);
-
修改http_conn.cpp中的数据库初始化信息
//root root为服务器数据库的登录名和密码 connection_pool *connPool=connection_pool::GetInstance("localhost","root","root","yourdb",3306,5);
-
修改http_conn.cpp中的root路径
const char* doc_root="/home/qgy/github/ini_tinywebserver/root";
-
选择任一校验方式,代码中使用同步校验。当使用CGI时才进行如下修改,否则可跳过本步骤,直接生成server
-
CGI多进程注册/登录校验
-
打开http_conn.cpp中CGI,关闭同步线程
380 //同步线程登录校验 381 //#if 0 423 //#endif 425 //CGI多进程登录校验 426 #if 0 495 #endif
-
修改sign.cpp中的数据库初始化信息
//root root为服务器数据库的登录名和密码 connection_pool *connPool=connection_pool::GetInstance("localhost","root","root","yourdb",3306,5);
-
生成check.cgi
make check.cgi
-
将生成的check.cgi放到root文件夹
cp ./check.cgi ./root
-
-
同步线程注册/登录校验
-
关闭http_conn.cpp中CGI,打开同步线程
380 //同步线程登录校验 381 #if 0 423 #endif 425 //CGI多进程登录校验 426 //#if 0 495 //#endif
-
-
生成server
make server
-
启动server
server port
-
浏览器端
ip:port
请关注公众号 “两猿社”.
- 带你丰富互联网相关项目经验,轻松应对校招!!!
- 项目模块详细讲解,在公众号内持续更新!!!