44 Star 337 Fork 131

寻根 / cppweb

Create your Gitee Account
Explore and code with more than 12 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
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README

功能说明

  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

Empty file

About

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

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/xungen/cppweb.git
git@gitee.com:xungen/cppweb.git
xungen
cppweb
cppweb
master

Search