write a lighttpd plugin

阅读更多

lighttpd mod

  1. 步骤
    1. 1. copy src:
    2. 2. modify Makefile.am
    3. 3. reconfig
    4. 4. lighttpd.conf
  2. reference:

步骤

1. copy src:


$ cd src/
$ cp mod_skeleton.c mod_counter.c
$ vi mod_counter.c
:%s/skeleton/counter/g
 

2. modify Makefile.am

and add some lines to the src /Makefile.am to tell the build system about your new plugin:

lib_LTLIBRARIES += mod_counter.la
mod_counter_la_SOURCES = mod_counter.c
mod_counter_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_counter_la_LIBADD = $(common_libadd)

3. reconfig

autoreconf -fi
./configure ...

4. lighttpd.conf

在lighttpd.conf中加一行:
server.modules = (
...
                "mod_ipswitch",
...)

代码:

1. 得到参数

 

uri:                 con->uri.path->ptr

query string:    con->uri.query->ptr

 

2. 判断是否需要过滤

    if (strncmp("/xxx", con->uri.path->ptr, 4))
        return HANDLER_GO_ON;

 

3. 返回结果

    buffer * b = chunkqueue_get_append_buffer(con->write_queue);
    buffer_copy_string_len(b, CONST_STR_LEN("abcd - ning\n"));

    con->http_status = 200;
    con->file_finished = 1;
    return HANDLER_FINISHED;




reference:

http://redmine.lighttpd.net/wiki/lighttpd/HowToWriteALighttpdPlugin

你可能感兴趣的:(lighttpd,C,C++,C#,Go)