kore 配置简单说明

发布时间 2023-11-29 12:22:20作者: 荣锋亮

kore 官方提供对于配置的说明比较少(只包含了一些核心的,其他的没有详细说明)但是提供了一个参考示例

一些配置

实际建议还是通过结合代码阅读比较方便,config.c 中关于配置有比较完整的说明,同时也会发现一些官方暂时没介绍的

  • http_server_version 配置
    这个是配置server response 中server 信息的,可以自定义,覆盖官方默认的
  • 网络相关的
    包含的比较多,比较类似nginx,比如worker_max_connections ,workers,worker_set_affinity,http_body_timeout,http_request_limit
  • http 请求路由配置的
    比较类似nginx http 的location
 
domain localhost {
    attach        tls  ## 使用的监听,可以是http 以及https 的
 
    certfile    cert/server.crt
    certkey        cert/server.key
    accesslog    /var/log/kore_access.log
 
    route / {
        handler index_page  // 路由请求,包含了method 以及handler ,以及validate 方便参数校验
        methods get
    }
 
    route /login {
        handler login_do
        methods post
        validate post username v_username
        validate post passphrase v_passphrase
    }
}
  • include 支持
    这个在代码中有体现,但是文档 暂时没说,是一个很不错的功能,可以实现类似nginx include 的能力
    参考使用
 
hello.conf
 
server no_tls {
    bind 0.0.0.0 8888
    tls no
}
 
include conf/mydemo.conf
 
http_server_version dalongdemo
 
conf/mydemo.conf
 
load ./hello.so
domain * {
    attach        no_tls
    #certfile    cert/server.pem
    #certkey        cert/key.pem
    accesslog    access.log
    route / {
        handler page
        methods GET
    }
}

说明

kore 的配置设计上比较灵活,支持的玩法比较类似nginx,用好include 很方便,可以实现模块动态化加载

参考资料

https://docs.kore.io/4.2.0/applications/koreconf.html
https://github.com/jorisvink/kore/blob/master/src/kore.c#L271
https://github.com/jorisvink/kore/blob/master/src/config.c
https://github.com/jorisvink/kore/blob/master/src/http.c#L191
https://github.com/jorisvink/kore/blob/master/src/config.c#L307C1-L307C18
https://github.com/jorisvink/kore/blob/master/conf/kore.conf.example