转自: http://www.54chen.com/index.php?p=309
lighttpd插件开发步骤
插件架构说明
- lighttpd的状态:为了便于理解lighttpd插件开发,需要了解lighttpd server在处理请求响应消息的过程中的11种状态,在这些状态中有如下重要函数需要被调用。对于这些状态,有的请求可能都会涉及到,有些请求可能只会经过部分状态。
状态 |
含义 |
对应函数 |
connect |
waiting for a connection |
nothing |
reqstart |
init the read-idle timer |
nothing |
read |
read http-request-header from network |
connection_handle_read_state() connection_handle_read() |
reqend |
parse request |
http_request_parse() |
readpost |
read http-request-content from network |
connection_handle_read_state() connection_handle_read() |
handlereq |
handle the request internally (might result in sub-requests) |
http_response_prepare() |
respstart |
prepare response header |
connection_handle_write_prepare() |
write |
write response-header + content to network |
connection_handle_write() |
respend |
cleanup environment, log request |
plugins_call_handle_request_done() plugins_call_handle_connection_close() connection_close() (if not keep-alive) connection_reset() |
error |
reset connection (incl. close()) |
plugins_call_handle_request_done() plugins_call_handle_connection_close() connection_reset() |
close |
close connection (handle lingering close) |
connection_close() |
- lighttpd的回调函数:lighttpd在不同的状态中共有16个回调函数.
init_
called when the plugin is loaded
cleanup_
called when the plugin is unloaded
set_defaults_
called when the configuration has to be processed
handle_trigger_
called once a second
handle_sighup_
called when the server received a SIGHUP
Most of these hooks are called in ``http_response_prepare()`` after some
fields in the connection structure are set.
handle_uri_raw_
called after uri.path_raw, uri.authority and uri.scheme are set
handle_uri_clean_
called after uri.path (a clean URI without .. and %20) is set
handle_docroot_
called at the end of the logical path handle to get a docroothandle_subrequest_start_
called if the physical path is set up and checked
handle_subrequest_
called at the end of ``http_response_prepare()``
handle_physical_path_
called after the physical path is created and no other handler is
found for this request
handle_request_done_
called when the request is done
handle_connection_close_
called if the connection has to be closed
handle_joblist_
called after the connection_state_engine is left again and plugin
internal handles have to be called
connection_reset_
called if the connection structure has to be cleaned up
分享到:
相关推荐
lighttpd是基于C语言开发的,其设计理念在于提供一个快速、安全且低内存占用的HTTP服务器解决方案。1.4.54是lighttpd的一个稳定版本,具有以下特点: 1. 高性能:lighttpd采用了多线程和事件驱动的模型,能有效处理...
Trac是一款开源且免费的项目管理工具,特别适合软件开发团队进行缺陷跟踪、文档管理以及版本控制集成。本文主要围绕Trac 0.12版本的搭建过程、插件安装及使用中的注意事项展开。 首先,Trac的搭建涉及到多个步骤,...
7. **开发与扩展**:除了基本的使用,开发者还可以根据需求扩展Lighttpd的功能,比如编写新的模块或插件,以满足特定的业务逻辑。 总的来说,"c web server library" 这个主题涵盖了从基础的Web服务器原理到具体...
3. **插件设计**:提供了一个易于扩展的插件架构,用户可以根据自己的需求开发自定义检测脚本。 4. **并行服务检查**:通过并行检查机制提高监控效率。 5. **网络层次结构定义**:允许用户定义主机间的层次关系,有...
Trac是一款开源且免费的软件开发流程管理工具,它结合了问题跟踪系统、项目管理和文档版本控制系统等功能,为软件团队提供了一个集中的、基于Web的协作环境。Trac的出现旨在帮助开发团队更好地追踪和解决项目中的...
2. **问题追踪**:Trac 支持创建和追踪 bug、功能请求等,帮助项目团队更好地管理软件开发过程中的问题。 3. **Wiki**:内置的 Wiki 功能允许团队成员轻松创建和编辑文档,有助于知识共享和项目文档管理。 4. **高度...
在Openfire下实现WebServer是一项常见的任务,Openfire作为一个开源的即时通讯服务器,它提供了丰富的API和插件机制,使得我们可以方便地在其基础上构建各种功能,包括集成WebServer。在这个过程中,我们将探讨如何...
标题中的“Trac安装用到的软件”表明我们将讨论Trac的安装过程,这是一个开源的项目管理和问题跟踪系统,常用于软件开发团队。Trac与版本控制系统如Subversion或Git结合使用,提供了一个集成了代码浏览、问题追踪、...
moinmoin是一款功能丰富的Wiki系统,由Jan Gerken开发,并且拥有一个活跃的开发者社区。它支持多种操作系统,包括Linux、Windows和macOS,可以轻松地集成到各种Web服务器环境中,如Apache、lighttpd或内置的HTTP...
代码审查(Code Review)是软件开发流程中的一个重要环节,它指的是一个团队成员对另一个团队成员的源代码进行检查的过程,目的在于提高代码质量、发现潜在的错误、提高团队成员间的交流和知识共享。Code Review工具...
- 安装Web服务器插件或配置,如Apache的mod_wsgi或lighttpd的fastcgi,使得Web服务器能与Trac通信。 - 最后,启动Web服务器,Trac服务即可开始运行。 4. **Trac的主要特性**: - **缺陷跟踪**:Trac允许创建、...
IIS是微软公司开发的一款广泛使用的Web服务器,它允许用户托管网站、应用程序和服务。然而,有些开发者或管理员可能需要寻找替代品,这可能是出于成本、性能、兼容性或其他技术原因。 在寻找IIS的替代软件时,有几...
Subversion1.8.13作为一个稳定且功能丰富的版本控制器,是个人项目和企业级开发的理想选择,它能有效管理和协调多人协作,确保代码的安全性和一致性。通过深入学习和实践,你可以充分利用它的强大功能来提升工作效率...
3. **系统服务**:为了提供持续的Subversion服务,可以将Subversion服务器作为系统服务运行,例如使用Apache HTTPD或lighttpd。 4. **权限管理**:在Linux环境中,可以利用Unix权限和SVN的访问控制列表(ACLs)来...
2. Web服务器:Apache是最常用的选择,但Moodle理论上也可在IIS、lighttpd、nginx、cherokee、zeus和LiteSpeed等其他服务器上运行,只是未进行全面测试或官方支持。注意,无论选择哪种Web服务器,都需要确保它配置了...