kangle过滤器

来自kangle
跳转至: 导航搜索

kangle从3.3.0版本开始支持过滤器功能,过滤器以动态链接库(windows是DLL文件,unix是so文件)形式提供,可以用于修改和加强kangle所提供的功能。 过滤器加载在kangle主进程上,过滤每个请求直到他们找到一个他们需要处理。 检查和修改传入和传出的数据流的能力使得kangle过滤器功能非常强大和灵活。

过滤器的可注册在站点级别或全局级别(即全局过滤器适用于kangle服务器上的所有站点),kangle主进程启动时被初始化。

kangle过滤器可以执行以下任务:

  • 请求控制
  • 过滤更改由客户端发送请求数据(如post数据)
  • 控制物理文件被映射到的URL
  • 回应控制
  • 过滤更改发送给客户端的内容
  • 当客户端连接关闭时进行处理

每一个kangle过滤器包含在一个单独的动态链接库中,必须导出两个入口点函数, kgl_filter_initkgl_filter_process,可选择导出kgl_filter_finit函数。

目录

包含文件名

ksapi.h

ksapi.h可从kangle的安装目录include目录下找到。

过滤器部署

在kangle的ext目录建立配置文件形式完成部署,配置文件语法:

 <config>
  <!-- 加载过滤器 -->
 <http_filter name='test' filename='D:\project\kangle\Debug\testfilter.dll'/>
 <vhs>
    <!-- 使用过滤器,在vhs标签下面是全局使用,在某一个vh标签下面,表示只在此虚拟主机使用 -->
    <filter name='test'/>
 </vhs>
 </config>

过滤器调试

如果加载不上,我们可以启动kangle的调试模式,或者是看server.log日志,里面有详细的错误信息。

调试模式启动kangle命令

kangle路径/bin/kangle -d5 -g

参考