【问题标题】:How are modules in apache 2.2 operatedapache 2.2中的模块是如何操作的
【发布时间】:2017-08-11 12:49:06
【问题描述】:

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

例如,get request commes 到 apache 并加载 mod_spnego(kerberos 身份验证)。 apache如何知道何时调用模块代码中的main函数?

【问题讨论】:

    标签: apache2.2


    【解决方案1】:

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

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

    看看这些文章,看看关于 Hooks 的说法。

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

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

    • Developing modules for the Apache HTTP Server 2.4

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

    【讨论】:

      猜你喜欢
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 2016-05-24
      相关资源
      最近更新 更多