apache提供了好多APi,这里写一个很简单的module,使用apsx生成so文件。代码如下:
#include "http_protocol.h"
static int sky_handler(request_rec *r)
if(strcmp(r->handler,"sky")) { #判断handler是不是sky,如果不是直接deny
r->content_type = "text/html";
if(!r->header_only) { //如果HTTP Method不是HEAD
ap_rputs("The sample page from mod_sky.c\n",r);
static void sky_register_hooks(apr_pool_t *p) //注册handler
ap_hook_handler(sky_handler,NULL,NULL,APR_HOOK_MIDDLE);
module AP_MODULE_DECLARE_DATA sky_module = { //注册hooks
NULL, /* create per-dir config structures */
NULL, /* merge per-dir config structures */
NULL, /* create per-server config structures */
NULL, /* merge per-server config structures */
NULL, /* table of config file commands */
sky_register_hooks //注册hooks
注:httpd.h、 http_config.h需要安装httpd-devel包
/usr/sbin/apxs -c -i mod_sky.c
生成/usr/lib64/httpd/modules/mod_sky.so。
修改httpd.conf, 加上LoadModule sky_module modules/mod_sky.so
然后重启httpd,访问http://172.16.132.129/sky?name=sky 即可看出效果
https://ci.apache.org/projects/httpd/trunk/doxygen/structrequest__rec.html#a4fb5cec8fe63f73648e96a3af0dff91c