Lighttpd 配置选项介绍

根据提供的 Lighttpd 配置选项文档(https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ConfigurationOptions ),以下是所有配置选项的详细解释、作用及适用场景,按模块分组说明:


以下是对 Lighttpd 配置选项 的完整详解,依据官方文档结构逐模块、逐选项解释其作用及使用场景:


一、Lighttpd Core (核心配置)

基本服务设置
  1. server.name
    • 作用:定义服务器或虚拟主机的名称(Hostname)。
    • 场景:多虚拟主机时区分不同站点,影响 Host 头匹配。
  2. server.document-root
    • 作用:网站文件的根目录路径。
    • 场景:必需项,例如 server.document-root = "/var/www/html"
  3. server.error-handler (>=1.4.40)
    • 作用:非动态请求(非CGI/代理)返回 HTTP 状态码 ≥400 时,调用指定 URI 处理。
    • 场景:自定义错误页面,如 server.error-handler = "/error-handler.php"
  4. server.error-handler-404
    • 作用:针对 403/404 错误调用指定 URI。
    • 场景:单独处理资源不存在或权限错误。
  5. server.errorfile-prefix
    • 作用:预定义错误页面路径前缀(如 /error-404.html)。
    • 场景:快速部署静态错误页。
  6. server.error-intercept (>=1.4.46)
    • 作用:是否允许 server.error* 覆盖动态处理器的错误页。
    • 场景:统一管理所有错误响应。
网络与端口
  1. server.bind
    • 作用:绑定 IP、主机名或 Unix 套接字路径(默认 "*")。
    • 场景:多IP服务器限制监听特定地址。
  2. server.port
    • 作用:监听端口(默认 80)。
    • 场景:HTTP 服务端口配置。
  3. server.network-backend
    • 作用:选择系统网络 I/O 模型(如 linux-sendfile)。
    • 场景:高性能场景调优(需测试兼容性)。
  4. server.listen-backlog
    • 作用:监听队列大小(默认受系统限制)。
    • 场景:高并发时防止连接丢弃(需调内核参数)。
  5. server.use-ipv6
    • 作用:启用 IPv6 监听。
    • 场景:支持 IPv6 网络环境。
  6. server.v4mapped (>=1.4.56)
    • 作用:允许 IPv6 套接字接收 IPv4 连接(禁用 IPV6_V6ONLY)。
    • 场景:双栈服务器简化配置。
日志管理
  1. server.errorlog
    • 作用:错误日志文件路径。
    • 场景:记录服务器错误和警告。
  2. server.errorlog-use-syslog
    • 作用:错误日志发送至 Syslog。
    • 场景:集中式日志管理。
  3. server.syslog-facility (>=1.4.46)
    • 作用:指定 Syslog 设施(如 "local0")。
    • 场景:分类日志到不同设施。
  4. server.breakagelog
    • 作用:重定向 stderr(包括 CGI 错误)。
    • 场景:捕获子进程错误信息。
性能与安全
  1. server.username / server.groupname
    • 作用:降权运行的用户/组。
    • 场景:提升安全性(避免 root 运行)。
  2. server.chroot
    • 作用:设置服务根目录(隔离环境)。
    • 场景:高安全环境限制文件访问。
  3. server.max-connections
    • 作用:最大并发连接数。
    • 场景:防资源耗尽(需配合系统限制)。
  4. server.max-fds
    • 作用:最大文件描述符数。
    • 场景:高并发服务器调优(需调 ulimit)。
  5. server.stream-request-body
    • 作用:流式传输请求体到后端。
    • 场景:大文件上传节省内存。
其他核心选项
  1. server.pid-file
    • 作用:PID 文件路径。
    • 场景:服务管理工具定位进程。
  2. mimetype.assign
    • 作用:MIME 类型映射表。
    • 场景:定义文件扩展名对应的 Content-Type。
  3. etag.use-*
    • 作用:控制 ETag 生成方式(inode/mtime/size)。
    • 场景:缓存验证优化(集群环境需禁用 inode)。

二、Core Debug Info (调试选项)

  1. debug.log-request-header
    • 作用:记录所有请求头。
    • 场景:排查客户端请求问题。
  2. debug.log-file-not-found
    • 作用:记录未找到文件事件。
    • 场景:检查错误资源路径。
  3. debug.log-ssl-noise
    • 作用:记录隐藏的 SSL 警告(如握手失败)。
    • 场景:TLS 连接问题诊断。
  4. debug.log-response-header
    • 作用:记录响应头。
    • 场景:验证服务器返回的头部信息。

:调试选项仅临时启用,避免生产环境长期使用。


三、模块配置 (按功能分类)

访问控制
  • mod_access
    29. url.access-deny:禁止访问指定后缀文件(如 .htaccess)。
    30. url.access-allow (>=1.4.40):仅允许访问指定后缀文件。
日志记录
  • mod_accesslog
    31. accesslog.format:定义日志格式(类似 Apache 的 %h %l %u %t)。
    32. accesslog.filename:访问日志路径(如 /var/log/lighttpd/access.log)。
路径处理
  • mod_alias
    33. alias.url:路径别名(如 "/img" => "/var/images")。
  • mod_evhost
    34. evhost.path-pattern:基于域名动态生成文档根目录(如 "/sites/%0")。
认证与授权
  • mod_auth
    35. auth.backend:认证后端(如 "plain"/"htpasswd")。
    36. auth.require:限制访问策略(如 require user="admin")。
压缩与缓存
  • mod_deflate
    37. deflate.mimetypes:启用压缩的 MIME 类型(如 "text/")。
    38. deflate.max-compress-size:压缩文件大小上限(默认 1MB)。
  • mod_expire
    39. expire.url:为路径设置缓存过期时间(如 "/images" => "access 30 days")。
目录与索引
  • mod_dirlisting
    40. dir-listing.activate:启用目录列表(替代 server.dir-listing)。
    41. dir-listing.exclude:隐藏匹配正则的文件(如 "~$" 隐藏临时文件)。
  • mod_indexfile
    42. index-file.names:默认索引文件(如 ("index.html", "index.php"))。
代理与网关
  • mod_proxy / mod_fastcgi / mod_scgi
    43. *.server:定义后端服务器(如 ("host" => "127.0.0.1", "port" => 9000))。
    44. *.balance:负载均衡算法(如 "round-robin")。
    45. proxy.replace-http-host:替换代理请求的 Host 头。
高级处理
  • mod_magnet
    46. magnet.attract-raw-url-to:用 Lua 脚本处理请求(如重写 URL)。
  • mod_setenv
    47. setenv.add-response-header:添加响应头(如 "X-Custom-Header: value")。

四、TLS/SSL 配置

mod_openssl (推荐)
  1. ssl.engine:启用 SSL/TLS。
  2. ssl.pemfile:证书链文件(PEM 格式)。
  3. ssl.cipher-list:加密套件(如 "HIGH:!aNULL")。
  4. ssl.verifyclient.activate:启用客户端证书验证。
其他后端
  • mod_gnutls / mod_mbedtls / mod_nss / mod_wolfssl
    功能类似 mod_openssl,按需选择加密库。

五、废弃模块 (Deprecated)

  • mod_compress → 由 mod_deflate 替代。
  • mod_geoip → 由 mod_maxminddb 替代(支持 MMDB 格式)。
  • mod_mysql_vhost → 由 mod_vhostdb 替代。

关键替代关系

  • compress.*deflate.*
  • geoip.db-filenamemaxminddb.db
  • mysql-vhost.*vhostdb.mysql.*

总结

  • 必选项server.document-rootserver.portindex-file.names
  • 安全建议server.username/groupnameserver.chroot、TLS 配置。
  • 性能调优server.max-connectionsdeflate.* 压缩、*.balance 负载均衡。
  • 废弃模块:避免使用,优先替代方案。

此列表覆盖 所有文档提及选项,共 50+ 核心配置项及模块参数。实际配置时,需结合版本(如 ≥1.4.46 的新特性)和场景灵活选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…

Python 训练营打卡 Day 40-训练和测试的规范写法

一.单通道图片的规范写法 以之前的MNIST数据集为例 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具 from torchvision import datasets, transforms # t…

Java 枚举(Enum)的使用说明

在 Java 中,枚举(Enum)是一种特殊的数据类型,用于定义一组固定的命名常量。它比传统的常量(如 public static final)更安全、更灵活,且支持面向对象特性。以下是枚举的详细用法: 1. …

Docker部署Nginx-UI

使用如下命令拉取运行nginx-ui软件 docker run -dit \ --namenginx-ui \ --restartalways \ -e TZAsia/Shanghai \ -v /mnt/user/appdata/nginx:/etc/nginx \ -v /mnt/user/appdata/nginx-ui:/etc/nginx-ui \ -v /var/run/docker.sock:/var/run/docker.sock \ -…

OkHttp 3.0源码解析:从设计理念到核心实现

本文通过深入分析OkHttp 3.0源码,揭示其高效HTTP客户端的实现奥秘,包含核心设计理念、关键组件解析、完整工作流程及实用技巧。 一、引言:为什么选择OkHttp? 在Android和Java生态中,OkHttp已成为HTTP客户端的标准选择…

洛谷P12170 [蓝桥杯 2025 省 Python B] 攻击次数

题目传送门 思路 首先定义一个数 n n n ,初值为 2025 2025 2025,从第一回合开始,三个英雄持续攻击,攻击方式为: 第一个英雄: 每回合攻击 5 5 5

百度之星2021——BD202104 萌新

输入格式: 本题有多组测试数据。 第一行一个数 T (1 ≤ T ≤ 1000) 表示一共有 T 组数据。对于每一组数据,输入一行两个数 a,b (1 ≤ a,b ≤ 1000000000)。 输出格式: 对每组数据,输出一行两个数分别表示最小与最大的 c&#xff0…

R语言ICU患者死亡率预测实战

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) 预测ICU患者死亡率对比较药物的疗效、比较护理的有效性、比较手术的有效性有重要意义,利用机…

leetcode240-搜索二维矩阵

leetcode 240 思路 1. 矩阵特性 首先,利用矩阵的特性是解题的关键: 每行的元素递增每列的元素递增 这意味着,如果我们在矩阵中从右上角或左下角开始搜索,可以有效缩小搜索范围 2. 从右上角开始搜索 将搜索的起点定位在矩阵…

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…

【web应用】若依框架:若依框架中的页面跳转简介

文章目录 ⭐前言1. 后端控制器跳转2. 前端路由跳转3. 菜单配置跳转4. 权限控制跳转5. 常见跳转路径 ⭐一、主目录页面跳转⭐二、菜单目录跳转⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内容开源、框架、软件工程、全栈&#x…

MS9292+MS9332 HD/DVI转VGA转换器+HD环出带音频

MS9292MS9332是一款HD/DVI转VGA转换器HD环出带音频的视频转换方案。支持HD/DVI输入,VGA输出和HD环出,HD/DVI输入最高支持1920120060Hz,VGA输出最高支持1920120060Hz,HD环出最高支持4K30Hz。该方案已实现量产,并提供完善…

C++初阶-list的模拟实现(难度较高)

1.list(容器,不是类)模拟实现基本结构 这个实现是和源码的实现不同的,不要进行强制类型转换了,很麻烦。我们把定义放在.h文件中,在.cpp中放测试代码。 注:这个基本结构之后会改变,…

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…

【iOS】cell的复用以及自定义cell

【iOS】cell的复用以及自定义cell 文章目录 【iOS】cell的复用以及自定义cell前言cell的复用手动(非注册)自动(注册) 自定义cell 前言 cell的复用及自定义cell是UITableView或UICollectionView的一个重要优化机制,当用户滚动视图…

深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(2)

前言 《深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(1)》里面我只是提到了对conv1层进行剪枝,只是为了验证这个剪枝的整个过程,但是后面也有提到:仅裁剪 conv1层的影响极大,原因如…

传输层协议:UDP

目录 1、概念 2、报文结构 3、核心特性 3.1 无连接 3.2 不可靠交付 3.3 面向数据报 3.4 轻量级&高效 3.5 支持广播和组播 4、典型应用场景 5、优缺点分析 6、与TCP的区别 1、概念 UDP(User Datagram Protocol,用户数据报协议&#xff09…

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…

【汇编逆向系列】七、函数调用包含多个参数之浮点型- XMM0-3寄存器

目录 1. 汇编代码 1.1 debug编译 1.2 release编译 2. 汇编分析 2.1 浮点参数传递规则 2.2 栈帧rsp的变化时序 2.3 参数的访问逻辑 2.4 返回值XMM0寄存器 3. 汇编转化 3.1 Debug编译 3.2 Release 编译 3.3 C语言转化 1. 汇编代码 上一节介绍了整型的函数传参&#x…