cppweb web 服务器开源项目

我要开发同款
匿名用户2020年09月07日
33阅读
开发技术Java
所属分类服务器软件、HTTP服务器
授权协议GPL

作品详情

cppweb 是一个基于C++开发的WEB服务器,支持C/C++、Python、Java等多语言混合开发WEB应用。

功能说明

作者初衷是编写一个web框架支持C++开发cgi程序,于是cppweb诞生了。作者希望cppweb是一个大一统的框架,即可用于传统服务端编程也可用于web编程,作者希望http协议能做的更多,框架包括以下两个核心服务:webserver:业务服务容器,通过配置也可升级为服务注册中心与定时任务调度中心。webrouter:接口路由网关服务,对外提供统一的流量入口,主要负责请求分发以及黑白名称配置。cppweb在读数据采用epoll网络模型,以任务队列的方式处理具体请求,回包也在任务队列中处理,理论上cppweb可支持单机10000个以上的并发连接。cppweb易拓展,作者开发Java、Python等模块,用于支持Java、Python等语言开发cgi程序,开发者可以直接使用C/C++、Java、Python等语言进行混合开发。cppweb追求小而巧,对于开源库是拿来即用,源码工程自带zlib、sqlite等源码代码,开发者无需另外下载,再此感谢zlib、sqlite等开源库的作者与开发团队。我们对linux与windows下的文件系统、共享内存、信息量等系统接口进行统一的封装,保证一份代码可以再不同的系统中编译运行,您也可以用cppweb基础库进行其他方面的跨平台开发工作。基于cppweb的微服务集群框架如下图所示,图中绿色部分包括服务注册中心与业务服务集群由webserver服务构成;图中红色部分包括外部接口网关与内部接口网关由webrouter接口路由网关服务构成。关于cppweb的更新内容可访问https://www.winfengtech.com/cppweb查看。测试数据cppweb在普通PC机(4核8G)上至少可支持每秒10000笔请求。cppweb在1核1G的低配centos系统上至少支持每秒3000笔请求。下图是cppweb自身的流量监控数据:

安装编译

下面我们以centos与ubuntu系统的安装编译为例,讲解如何编译运行cppweb开发框架,后续我们将补充windows系统下cppweb的安装说明文档。如果系统没有自带openssl开发客户端,需要自行进行安装,ubuntu下可以执行apt-getinstalllibssl-dev命令进行安装。

执行以下命令下载源码。gitclonehttps://gitee.com/xungen/cppweb.git进入源码目录执行sourceconfigure命令,为使环境变量在当前会话中生效必须使用source命令执行configure进行编译配置。命令输出结果如下:initializeconfigure---------------------------------------------1.checkopensslsuccess2.checkg++compilersuccess3.checkjavacompilersuccess4.createproductdirectorysuccess5.exportenvironmentvariablesuccess--------------------------------------------->>>initializebuild-essentialsuccess在源码目录下执行make命令,正常情况3~5分钟完成编译。在windows系统中你可以用mingw编译器在gitbash中进行编译。执行webserver-init$SOURCE_HOME/webapp/etc命令初始化配置,命令执行成功后会在$SOURCE_HOME/webapp/etc目录下生成以下文件:sqlite.db:基础数据文件config.lua:启动配置文件dbconfig.lua:数据库配置文件mimeconfig.lua:MIME类型映射文件初始化完成后执行strsvr命令便可启动webserver服务。用浏览器打开https://localhost:8888地址进入webserver管理中心,如果webserver不是部署在本机需要将地址中的localhost替换为webserver所在服务器的IP地址,登陆用户与初始密码都为system。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论