小樱 发表于 2024/8/14 00:08

linux centos7 kangle 3.6.0源代码cmake编译最新教程

linux centos7 kangle 3.6.0源代码cmake编译最新教程

前提,kangle 3.6.0源代码需要使用cmake 3.12或者更高版本来进行编译
centos7默认的版本为2.8.12.2,所以需要安装更高版本

极速安装cmake 3.25.2
https://bbs.itzmx.com/thread-102478-1-1.html

kangle 3.6.0安装
yum -y install which file wget make automake gcc gcc-c++ pcre-devel zlib-devel openssl-devel sqlite-devel quota unzip bzip2 libaio-devel libjpeg-turbo libtiff libpng libzstd-devel brotli-devel git jemalloc-devel
git clone https://github.com/keengo99/kangle
cd kangle
git clone https://github.com/keengo99/kasync
git clone https://github.com/keengo99/khttpd
cd kasync
git clone https://github.com/keengo99/libucontext
cd ..
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/vhs/kangle -DCMAKE_BUILD_TYPE=Release -DENABLE_JEMALLOC=1 -DENABLE_FCONTEXT=1 -DENABLE_BROTLI=1 -DENABLE_ZSTD=1
make -j 4
make install
cd /root
git clone https://github.com/keengo99/kwaf
cd kwaf
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/vhs/kangle -DKANGLE_DIR=/root/kangle
make -j 2
make install
cd /root/kangle
\cp -rf bin /vhs/kangle
\cp -rf ext /vhs/kangle
rm -rf /vhs/kangle/etc/config.xml
wget http://github.itzmx.com/1265578519/kangle/master/ent/config.xml -O /vhs/kangle/etc/config.xml
rm -rf /vhs/kangle/www/index.html
mkdir -p /vhs/kangle/www
wget http://github.itzmx.com/1265578519/kangle/master/easypanel/index.html -O /vhs/kangle/www/index.html
cd build
\cp -rf filter.so /vhs/kangle/bin
\cp -rf /vhs/kangle/ext/kwaf.dso.xml /vhs/kangle/ext/filter.dso.xml
sed -i 's/kwaf/filter/g' /vhs/kangle/ext/filter.dso.xml
/vhs/kangle/bin/kangle


cmake 选项
没有debug字符的生产版本,如果用于源代码开发定位崩溃位置时则不要增加此选项
-DCMAKE_BUILD_TYPE=Release

启用jemalloc数据库引擎
-DENABLE_JEMALLOC=1

新的fcontext协程:https://bbs.itzmx.com/thread-109470-1-1.html
-DENABLE_FCONTEXT=1

启用br压缩,在centos6下不支持,需要使用源码方式brotli_dir,或者尝试rpm包安装br到系统中
-DENABLE_BROTLI=1

启用zstd压缩
-DENABLE_ZSTD=1

注:3.6.0目前处于开发阶段,不要用于生产环境
https://github.com/keengo99/kangle

param和post_file标记模块现在要改成继续,dso模块在build目录的filter.so文件,需要加载一下,教程到时候在更新上去(已更新)
3.6禁用缓存的时候用的是sendfile函数发送文件(Windows是TransmitFile),直接调用系统api走内核级内存cache,不从进程读取数据,有可能比3.5性能更高,不过输出的可能是内存结果
做了bond0网卡叠加如果iperf3跑满40Gbps宽带,kangle跑不上去只能到35Gbps,因为iperf3是全内存操作,web则需要多一些步骤 处理标头,读取文件从磁盘io发送到网络,性能损耗是会大一点
iperf3打流的时候多开一个窗口看top,如果iperf3都打不动cpu瓶颈的话,那基本只能换更好的系统试试,或者升级CPU了,比如说咨询商家现在有什么CPU,升级到双路CPU

phrnet 发表于 2024/9/3 16:25

不知道更新了什么

小樱 发表于 2024/9/3 19:12

phrnet 发表于 2024/9/3 16:25
不知道更新了什么

新版本主要是拆分模块化,h3支持,zstd压缩,新的fcontext等

chnfsx 发表于 2024/9/6 16:57

小樱 发表于 2024/9/3 19:12
新版本主要是拆分模块化,h3支持,zstd压缩,新的fcontext等

centos 7 又停止维护了 {:132:}
kangle 安装不是问题 就是 ep 不知道 ubuntu debian好折腾么

另外这个新版本能免费白嫖升级商业版么

小樱 发表于 2024/9/6 18:39

chnfsx 发表于 2024/9/6 16:57
centos 7 又停止维护了
kangle 安装不是问题 就是 ep 不知道 ubuntu debian好折腾么



如果不愿意使用centos7,可以用centos9,或者代替品AlmaLinux
这个版本所有商业版的功能全部开源
页: [1]
查看完整版本: linux centos7 kangle 3.6.0源代码cmake编译最新教程