操作
小型待办事项列表¶
注意:此列表会不时更新,不一定代表开发的精确状态。请将其作为大致概览。
- 非线程安全的配置处理(设置仅在启动模式下允许,无需线程安全)
- 审核
- 核心
- 文件描述符溢出处理应(仅)在主工作进程中进行
- X-Throttle(用于节流处理的 Lua API?)?
- 限制请求/响应头部大小,请求URL长度
- 上传临时文件目录选项
- 从 LOADING -> SUSPENDED 状态等待 angel 的监听套接字
- 配置包含*:排序文件名
- 通用“数据检索/发送”API
- 用标识符注册后端;从模块提供后端(单独工作线程中的 Lua 回调、SQL 后端、Memcache、文件?、计数器等)
- 回调函数接受 vrequest 上下文(仅在同一线程中 - 如有需要,复制数据到其他线程)
- 回调函数接受附加字符串参数?
- 检索/发送的数据是原始字节流
- 用于
- 页面缓存
- 动态SSL证书
- 动态虚拟主机配置
- 状态计数器(正在使用的后端、错误等)
- 后端必须在使用前注册
- angel
- 重写:从配置概念中移除实例
- 日志轮换(或者使用零停机重启?)
- 控制套接字接口
- angel-control 工具
- 重新加载 angel 配置(更改文件描述符数量等)(更新后重新执行二进制文件?)
- 管道日志记录
- 日志
- scheme:// 前缀
- 支持管道
- 用 angel 打开日志文件
- 如果日志级别目标不是 /dev/null,则将“启动”(即如果日志记录被禁用)日志消息打印到 stderr/angel
- 插件API
- 插件间API
- 每个客户端IP地址的插件数据
- 可用于带宽限制、每秒请求限制、并发请求限制等
- 必须在所有工作进程之间共享,因此需要加锁?
- 也许让主工作进程在基数树中进行查找/移除,这样就不需要为此加锁,并让插件确保修改时线程安全
- 模块
- 移植1.x中剩余的模块
- mod_extforward
- mod_ssi(这可能应该作为FastCGI应用程序实现)?
- mod_ajp13?
- mod_trigger_b4_dl?
- mod_usertrack?
- mod_(web)dav?
- 新概念用于
- mod_{my,pg}sql_vhost(加载完整配置而非仅文档根目录)
- mod_rrdtool
- mod_geoip
- SQL 虚拟主机(Lua 处理程序从数据库行生成操作?)
- mod_auth_dovecot
- 添加更多创新模块:)
- 移植1.x中剩余的模块
- mod_auth
- 摘要认证
- mod_status
- 在持续时间列中显示超时,如“5/120”?
- mod_dirlist
- 异步生成静态目录列表/HTML正文,使用任务(以允许ETag缓存命中)
- mod_openssl
- SNI支持
- 在哈希表中查找
- 动态查找?通过模式查找文件,Lua 回调等
- 用户证书?
- 使用 http://www.mozilla.org/projects/security/pki/nss/ 而非 OpenSSL?
- SNI支持
- mod_deflate
- 正确检测客户端支持的方法(当前“损坏”:strstr 搜索支持方法,检查方法是否在开头)
- 添加“强制”模式以强制使用特定的压缩方法
- 添加“enflate”或“fix compression”操作,如果客户端不理解当前编码,则解压缩内容
其背后的想法是这样的memcached.lookup ( ..., ${ deflate.fix; deflate; }, ${ php; deflate.enforce "bzip2"; memcache.store ...; deflate.fix; deflate; };
- mod_fastcgi
- keep-alive 连接
- mod_memcache
- 存储HTTP头部,以便我们也能缓存解压缩后的内容
- mod_proxy
- 发起HTTP/1.1下游请求
- mod_balancer
- 重命名为 mod_balance
- 添加积压大小等选项
- mod_status
- 连接详细信息单独选项卡;在配置中选择可用选项卡列表
- 优雅重启后,以某种方式访问旧实例的统计信息(通过 angel)
- 统计缓存
- 缓存命中后用 stat() 重新验证目录列表条目?
- 清除无效条目(stat()/open() 失败),即从哈希表中移除
- 在排队目录列表作业之前,检查正常的 stat 条目、stat() 和 S_ISDIR
- 重新验证条目后重置TTL
- 哈希表限制?
- 检查符号链接/如果所有者匹配则符号链接
- 构建系统
- 至少一个构建系统应提供静态构建