如何在apache 2.2中运行模块

时间:2017-08-11 12:49:06

标签: apache2.2

在runtine或启动期间加载apache模块的机制是什么?在该进程中是否使用了进程间通信等机制? apache是​​否主动调用模块中的方法,或模块本身调用apache方法,或两者​​兼而有。

例如,get request commes to apache和mod_spnego(kerberos authentication)被加载。 apache如何知道何时在模块代码中调用main函数?

1 个答案:

答案 0 :(得分:0)

Apache及其模块用C语言编写。模块在启动期间从共享对象文件(Unix上的.so,Windows上的.dllDynamic Shared Object)加载。在构建Apache HTTPD时,还可以将模块静态编译到httpd二进制文件中。无论如何,他们都在同一个过程中工作。

  

Apache如何知道何时在模块代码中调用main函数?

看一下这些文章,看看有关 Hooks 的内容。

  • Apache 2.2,Converting Modules from Apache 1.3 to Apache 2.0

      

    新架构使用一系列钩子来提供呼叫   你的功能。这些您需要通过a添加到您的模块中   新功能,static void register_hooks(void)。功能真的   一旦你明白需要做什么,就会相当直截了当。   在处理a的某个阶段需要调用的每个函数   请求需要注册,处理程序不需要。

  • Developing modules for the Apache HTTP Server 2.4

      

    在Apache HTTP Server 2.4中处理请求时,首先要做的就是   需要做的是在请求处理过程中创建一个钩子。一个   hook本质上是一条告诉服务器你愿意的消息   要么服务,要么至少看一眼给出的某些要求   客户端。所有处理程序,无论是mod_rewrite,mod_authn_ *,   mod_proxy等等,被挂钩到请求的特定部分   处理。您可能已经意识到,模块有不同的用途;   一些是身份验证/授权处理程序,另一些是文件或   脚本处理程序,而某些第三个模块重写URI或代理   内容。