Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

donglinz/web-server

Repository files navigation

WebServer based on Boost asio

English version

基于Boost Asio的多线程Web服务器。

  1. 服务器由Web服务模块,日志模块,Cache模块,XML配置模块构成。
  2. 支持HTTP,HTTPS协议。HTTPS协议用asio::ssl::context对象对socket数据流进行加密。
  3. 支持静态HTML页面,GET/POST方法,可以方便的进行横向扩展以支持新的请求方法。
  4. 日志系统支持日志轮转,设置最大日志占用空间,定时轮转,过滤器等功能。
  5. 缓存系统支持两种缓存,第一种是本服务器自带内存缓存,可以制定缓存大小,用LRU算法进行替换。第二种缓存是用Redis做页面缓存,需要在配置文件里完成Redis相应配置。换句话说,本数据库有三种缓存策略,无缓存,内存缓存和Redis缓存。在通常情况下,Redis缓存能获得更好的并发效率。

OS

建议ubuntu14及以上

Complier

G++5及以上

Library dependencies

以下库都在CMakeLists.txt中包含

boost_system ssl crypto pthread boost_log boost_thread boost_log_setup boost_regex

开发环境Boost版本为1.63.0 详情见Boost 1_63_0官方文档

强烈建议在本机用相同的编译器编译本程序以及Boost库,防止链接动态库时出错。

Make

cd web-server
cmake CMakeLists.txt
make

Configurations

所有的配置都要写在WebConfig.xml文件内,并放在和编译生成文件相同目录下。WebConfig.xml.sample是一份样例配置,请按文件里的注释进行配置。
IP黑名单暂时只能配置,并不会生效,但是很快会在后续版本里支持。

Run

运行'web-server'文件来开始服务器。

./web-server 是服务器可执行文件。 ./web/是默认的web根目录(可以在WebConfig.xml中修改). 必需保证Web根目录下有index.html文件. 否则服务器将会返回一个404页面。

Run as a HTTP/HTTPS server:

nohup ./web_server &

Load Test

运行在Redis缓存模式下 服务器配置:阿里云双核Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz 4G RAM 模拟3000个用户对七个页面并发访问,每个用户每秒访问一个页面 结果如下:

测试结果 服务器cpu负载一直在20左右

DEMO

http://118.190.23.140:1234/index.html

Contact me

donglinzhuang@outlook.com

About

Web Server based on Boost asio

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /