43 Star 279 Fork 107

寻根 / cppweb

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
readme.md

功能说明

  1. 作者初衷是编写一个web框架支持C++开发cgi程序,于是cppweb诞生了。
  2. 作者希望cppweb是一个大一统的框架,即可用于传统服务端编程也可用于web编程,作者希望http协议能做的更多,框架包括以下两个核心服务:
webserver:业务服务容器,通过配置也可升级为服务注册中心与定时任务调度中心。
webrouter:接口路由网关服务,对外提供统一的流量入口,主要负责请求分发以及黑白名称配置。
  1. cppweb在读数据采用epoll网络模型,以任务队列的方式处理具体请求,回包也在任务队列中处理,理论上cppweb可支持单机10000个以上的并发连接。
  2. cppweb易拓展,作者开发Java、Python等模块,用于支持Java、Python等语言开发cgi程序,开发者可以直接使用C/C++、Java、Python等语言进行混合开发。
  3. cppweb追求小而巧,对于开源库是拿来即用,源码工程自带zlib、sqlite等源码代码,开发者无需另外下载,再此感谢zlib、sqlite等开源库的作者与开发团队。
  4. 基于cppweb的微服务集群框架如下图所示,图中绿色部分包括服务注册中心与业务服务集群由webserver服务构成;图中红色部分包括外部接口网关与内部接口网关由webrouter接口路由网关服务构成。关于cppweb的更多内容请可访问https://www.winfengtech.com/cppweb查看。 输入图片说明

测试数据

  1. cppweb在普通PC机(4核8G)上至少可支持每秒10000笔请求。
  2. cppweb在1核1G的低配centos系统上至少支持每秒3000笔请求。
  3. 下图是cppweb自身的流量监控数据: 输入图片说明

安装编译

下面我们以centos与ubuntu系统的安装编译为例,讲解如何编译运行cppweb开发框架。如果系统没有自带openssl开发客户端,需要自行进行安装,ubuntu下可以执行apt-get install libssl-dev命令进行安装。
  1. 执行以下命令下载源码,你需要使用root用户进行安装编译。
git clone https://gitee.com/xungen/cppweb.git
  1. 如果是在windows环境下编译运行cppweb,你需要执行git checkout windows命令切换到windows分支,windows分支下已集成mingw编译环境,你可以在git-bash中进行编译安装。
  1. 进入源码目录先执行chmod +x *.sh命令,然后执行./compile.sh命令进行编译:
initialize configure
---------------------------------------------
1.check openssl success
2.check g++ compiler success
3.check java compiler success
4.create product directory success
---------------------------------------------
>>> initialize build-essential success

*** wait few minutes for compiling ***
  1. 正常情况3~5分钟完成编译,编译成功后用root用户执行./install.sh进行安装,输出如下内容说明安装成功。
install cppweb
--------------------------------
1.packaging files
2.unpacking files
3.installing service
--------------------------------
>>> install cppweb success
  1. 新建一个cppweb用户,登录cppweb用户执行以下命令将/home/cppweb/webapp目录初始化为的cppweb应用目录。
webserver -init /home/cppweb/webapp
  1. cppweb用户下执行以下命令启动webserver服务。
nohup webserver /home/cppweb/webapp/etc/config.yml > /dev/null &
  1. 执行webserver -l命令,可以查看cppweb服务日志,用浏览器打开http://localhost:8888地址进入cppweb管理中心,你可以用rootsystem账户登录cppweb管理中心,默认密码与用户名相同,首次登录后请马上修改登录密码。

配置文件config.yml示例

#应用配置
app:
  #应用ID
  id: 1
  #监听端口
  port: 8888
  #应用名称
  name: cppweb
  #应用根目录
  path: /home/cppweb/webapp

  #安全链接配置
  ssl:
    #SSL监听端口
    port: 9999
    #证书文件路径
    certfile: /home/cppweb/webapp/etc/cert.crt
    #证书私钥文件路径
    prikeyfile: /home/cppweb/webapp/etc/cert.key

  #静态资源目录映射配置
  dir:
    res: res

  #静态资源文件映射配置
  url:
    favicon.ico: res/img/logo.png

  #注册中心服务地址
  route:
    port: 8888
    host: 127.0.0.1

  #应用开关配置
  switch:
    java: false
    route: true
    python: false

  connect:
    timeout: 60
    maxrequestsize: 10M
    maxrequestcount: 1000

#日志配置
log:
  path: /home/cppweb/webapp/log

#缓存配置
redis:
  #port: 6379
  #host: 127.0.0.1

#数据库配置
database:
  type: sqlite
  name: /home/cppweb/webapp/etc/sqlite.db

Repository Comments ( 14 )

Sign in to post a comment

About

基于C++开发的WEB服务器,支持C/C++、Python、Java等多语言混合开发WEB应用。 expand collapse
Cancel

Releases

No release

cppweb

Contributors

All

Activities

Load More
can not load any more
C++
1
https://gitee.com/xungen/cppweb.git
git@gitee.com:xungen/cppweb.git
xungen
cppweb
cppweb
master

Search