项目

通用

个人资料

操作

插件接口

描述

插件允许您在不更改 Web 服务器核心的情况下增强 lighttpd 的功能。它们可以在启动时加载,并且可以改变 Web 服务器行为的几乎任何方面。

插件入口点

Lighttpd 有 16 个钩子,它们在请求执行的不同状态下使用。

服务器范围钩子

连接范围钩子

这些钩子大多在连接结构中的某些字段设置后,在 http_response_prepare() 中调用。

插件接口

*_plugin_init

每个插件都有一个唯一命名的函数,在插件加载后调用。它用于使用一些有用的数据设置 ``plugin`` 结构。
  • 插件名称 name
  • 所有钩子

在 init 函数中不应触及 data 字段和 liblib 是来自 dlopen 的库句柄,而 data 将是内部插件数据的存储。

返回:0 (未处理)

init

插件函数的第一个实际调用是 init 钩子,它用于设置内部插件数据。内部插件被分配 *_plugin_init 描述中提到的 ``data`` 字段。

返回:指向内部插件数据的指针。

cleanup

cleanup 钩子在插件卸载之前调用。它旨在释放所有在 ``init`` 或插件其他地方分配但尚未释放的缓冲区,并关闭所有已打开但尚未关闭的句柄。

返回:如果正常,返回 HANDLER_GO_ON(未处理)

set_defaults

set_defaults 是您进入配置文件解析的入口点。它应该将选项列表传递给 ``config_insert_values`` 并检查插件配置是否有效。如果尚未有效,它应该设置有用的默认值,或者返回 HANDLER_ERROR 并附带错误消息。

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • HANDLER_ERROR 将终止 lighttpd

connection_reset

在每个请求结束时调用

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 错误时返回 HANDLER_ERROR

handle_trigger

每秒调用一次

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 错误时返回 HANDLER_ERROR

handle_sighup

收到 SIGHUP 信号时调用(循环日志文件等)

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 错误时返回 HANDLER_ERROR

handle_uri_raw

在 uri_raw 设置后调用

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 如果最终输出已准备好,返回 HANDLER_FINISHED
  • 错误时返回 HANDLER_ERROR

handle_uri_clean

在 uri.path 设置后调用

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 如果最终输出已准备好,返回 HANDLER_FINISHED
  • 错误时返回 HANDLER_ERROR

handle_docroot

需要 docroot 时调用

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 如果最终输出已准备好,返回 HANDLER_FINISHED
  • 错误时返回 HANDLER_ERROR

handle_subrequest_start

在 physical.path 设置后调用

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 如果最终输出已准备好,返回 HANDLER_FINISHED
  • 错误时返回 HANDLER_ERROR

handle_subrequest

如果 subrequest_start 请求了 COMEBACK 或 WAIT_FOR_EVENT,则调用

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 如果最终输出已准备好,返回 HANDLER_FINISHED
  • 错误时返回 HANDLER_ERROR

handle_physical_path

在 physical.path 设置后调用

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 如果最终输出已准备好,返回 HANDLER_FINISHED
  • 错误时返回 HANDLER_ERROR

handle_request_done

在请求结束时调用(日志记录、统计等)

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 错误时返回 HANDLER_ERROR

handle_connection_close

连接终止时调用

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 错误时返回 HANDLER_ERROR

handle_joblist

连接状态改变时调用

返回:
  • 如果正常,返回 HANDLER_GO_ON
  • 错误时返回 HANDLER_ERROR

stbuehler将近 13 年前 更新 · 10 次修订