`

lighttpd基础配置-限速、与Squid配合、监控状态

阅读更多

前段时间服务器硬盘坏了,导致提供镜像下载的服务终止,年前硬件虽修好。但发现提供下载的FTP配置丢失,重新配置比较麻烦。又考虑到原提供FTP下载时,存在不少的弊端,特别是暴力破解攻击的问题很严重,导致系统日志不正常的暴涨,故决定直接提供http链接算了。我一直觉得lighttpd是相当不错的Web服务端软件,特别是对于静态文件的处理效率相当高,资源占用很少。实际使用中,需解决的几个问题是:

引用
1、限速,毕竟网速有限,可不能因为下载把所有的带宽都用完了;
2、可分析来源地址,由于网络架构前端用的是Squid 2.6做反向代理,客户访问后端的服务器时默认只记录了前端的IP,这给分析访问的客户信息带来麻烦。
3、lighttpd自带简单的状态监控工具,激活它吧。

基础配置部分就不再说明了,请搜索我之前的日志吧。以上问题解决并不复杂,提及一些重要部分即可。

一、限速
lighttpd从1.3.8开始就支持限速功能,还支持plugin等。更详细的信息,请看:Lighttpd - Docs-TrafficShaping
限速功能在Core中即有提供,不需要启动额外的模块,可用两个设定:
引用
connection.kbytes-per-second
Limit the throughput for each single connection to the given limit in kbyte/s
Default: 0 (no limit)
限制单个连接可使用的带宽,默认值是0,不限制

server.kbytes-per-second
Limit the throughput for all connections to the given limit in kbyte/s
Default: 0 (no limit)
对某个域、或链接路径限制可用的总带宽

需要注意的是:
引用
1、我没有找到对链接数的限制,这是一个比较麻烦的问题,可能需要用iptables来处理;
2、单连接的限制无法防止使用迅雷、快车等多并发工具下载的情况,所以需要同时控制对整个域或路径的最大带宽;
3、控制的单位是KBytes/sec ;
4、由于存在TCP send buffer的情况,一般实际数据会比限制的数据要高一点。

例如,lighttpd.conf中有:
引用
#单个连接不能超过30KB/s
connection.kbytes-per-second = 30

$HTTP["host"] == "download.linuxfly.org" {
  server.name = "download.linuxfly.org"
  server.document-root = "/var/www/html/iso"
  accesslog.filename = "/var/log/lighttpd/iso-access.log"
  $HTTP["url"] =~ "^/download/" {
    dir-listing.activate = "enable"
    #/download路径下可用的最大是100KB/s
    server.kbytes-per-second = 100
  }
  #除/download路径外,该域可用的最大带宽是200KB/s
  server.kbytes-per-second = 200
}

对特定客户端或plugin的使用,请参考上面官方网站WiKi上的说明。

◎ 意外
限速后,可能更多的朋友会使用多线程的下载工具来加速。此时,可能会发现系统日志报错:
引用
2009-02-04 17:39:02: (network_linux_sendfile.c.143) open failed:  Too many open files
2009-02-04 17:39:02: (connections.c.603) connection closed:

原因是,lighttpd是个单线程的服务器,所以受到Linux的单线程允许打开文件数的资源限制。
在lighttpd配置文件中,需要加入(默认1024):
引用
server.max-fds = 8192

此外,系统本身也有限制,查看Linux的最大文件描述符:
引用
# cat /etc/redflag-release
Red Flag DC Server release 5.0 (Trinity SP2)
# cat /proc/sys/fs/file-nr
580     0       131072

三个值的意思分别是:
引用
580:总共打开的文件描述符的数量(从系统开机开始算, 所有打开的文件描述符的数量)
0:总共的空闲的文件描述符的数量
131072:最大能打开的文件描述符的数量

修改:

# echo “132096″ > /proc/sys/fs/file-max

或加入/etc/sysctl.conf文件中。

二、与Squid的配合
我的网络架构是:
引用
Squid ———— vz:lighttpd:80

默认在lighttpd的accesslog里面,是无法记录透过Squid(或Apache的mod_proxy)过来的用户ip地址的,而全记录的是Squid(或Apache机器)的代理网关ip地址。在我们需要分析客户端来源信息时,就需要做些设定了。

1、Squid配置
修改/etc/squid/squid.conf配置文件,确认下面的设置:
引用
#要禁用重写url头,否则后台的http服务器日志看不到客户端的来源信息了
url_rewrite_host_header off

更详细,请看这里:[原]配置Squid 2.6实现反向代理

2、lighttpd设置
把mod_accesslog模块打开,然后修改accesslog格式,即有:
引用
server.modules              = (..., "mod_accesslog", ... )
#### accesslog module
accesslog.filename          = "/var/log/lighttpd/access.log"
accesslog.format = "%{X-Forwarded-For}i %v %u %t \"%r\" %s %b \"%{User-Agent}i\" \"%{Referer}i\""

其中”%{X-Forwarded-For}i 就是记录了用户来源的ip地址,这里日志与Apache combined相同。

三、监控状态
lighttpd的mod_status是可以提供server-status监控页面的,需要在配置文件中加入:
引用
server.modules = ( ..., "mod_status", ... )
status.status-url = "/server-status"
status.config-url = "/server-config"
status.statistics-url = "/server-statistics"

重启lighttpd服务后,访问
引用
http://ip/server-status
http://ip/server-config
http://ip/server-statistics

页面即可:


 
其他可选参数,请见:Lighttpd - Docs-ModStatus

※ lighttpd更多可用的模块说明,请见这里:Wiki Modules Documentation

  • 大小: 100.9 KB
分享到:
评论

相关推荐

    lighttpd-1.4.20-cmake

    《lighttpd-1.4.20-cmake:轻量级HTTP服务器的构建与配置详解》 在互联网服务领域,HTTP服务器是不可或缺的一部分,它们负责处理来自客户端的HTTP请求并返回相应的网页内容。其中,lighttpd因其轻量、高效、安全的...

    lighttpd-1.4.30.tar.gz

    《lighttpd-1.4.30:轻量级Web服务器的配置与应用》 lighttpd是一款轻量级的Web服务器,以其高效的性能、低内存占用和丰富的功能而受到许多开发者的青睐。在本篇文章中,我们将深入探讨lighttpd-1.4.30版本的特性和...

    最新lighttpd源码 lighttpd-1.4.22

    Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是...

    LightTPD-1.4.16-Win32安装版

    在下载的压缩包中,"LightTPD-1.4.16-Win32.exe"是LightTPD的Windows版本安装程序。安装过程中,用户通常需要选择安装路径、配置服务器端口、设置默认文档根目录等。安装完成后,通过修改配置文件(通常是`lighttpd....

    lighttpd-1.4.45_lighttpd服务器_

    《lighttpd-1.4.45:轻量级Web服务器的魅力解析》 lighttpd,这个名字在Web服务器领域中或许不如Apache或Nginx那样耳熟能详,但其独特的轻量级特性和高效性能,使得它在特定场景下成为理想的解决方案。lighttpd-...

    安卓系统lighttpd-php-mysql本地环境 v8.0.zip

    这是一个可在安卓手机上布置的服务器环境,功能组件包括:lighttpd、php和mysql,能成功运行DZ等php程序,安装和配置过程十分简单,也许现在该是讨论用什么手机做服务器更合适的时候了。  演示图片为一成功运行的...

    lighttpd配置和启动脚本

    4. **状态查询**:可以编写一个`status-lighttpd.sh`脚本检查lighttpd服务的状态,通常通过检查进程是否存在来实现。 5. **配置文件验证**:在启动前,使用`lighttpd -t -f /path/to/lighttpd.conf`命令验证配置文件...

    lighttpd-1.4.55移植配置与测试.rar

    交叉编译最新版的lighttpd-1.4.55,配置与测试CGI与HTML.内含 lighttpd-1.4.55源码,移植教程,cgi测试代码,html测试代码.测试cgi时,浏览器中应该输入192.168.100.30/cgi-bin/xx.cgi .其中 192.168.100.30为开发板的ip

    LightTPD for windows 1.4.45-x86

    自己在cygwin下编译的源码,并指定的默认配置文件路径和lib路径, 编译环境windows xp 32位 gcc version 4.9.2 (GCC) 编译参数: ./configure --prefix=XXXX --without-bzip2 配置文件为从源码dco/config目录获取后...

    LightTPD for windows 1.4.45-x64

    自己在cygwin下编译的源码,并指定的默认配置文件路径和lib路径, 编译环境windows7 64位 gcc version 5.4.0 (GCC) 编译参数: ./configure --prefix=XXXX --without-bzip2 配置文件为从源码dco/config目录获取后进行...

    安卓系统lighttpd-php-mysql本地环境 v8.0

    这是一个可在安卓手机上布置的服务器环境,功能组件包括:lighttpd、php和mysql,能成功运行DZ等php程序,安装和配置过程十分简单,也许现在该是讨论用什么手机做服务器更合适的时候了。演示图片为一成功运行的...

    docker镜像构建,中间件mysql、lighttpd、Nginx、squid配置和启动、dubbo服务部署

    学习心得,分享出来供大家学习。docker镜像构建,中间件mysql、lighttpd、Nginx、squid配置和启动、dubbo服务部署

    lighttpd-1.4.59.tar.gz

    《lighttpd-1.4.59:轻量级HTTP服务器的安装与配置详解》 lighttpd,一个在互联网领域广泛应用的轻量级Web服务器,因其高效、安全、易扩展的特性,深受开发者喜爱。本文将详细介绍lighttpd-1.4.59版本的安装过程...

    lighttpd基础入门——状态机与插件

    ### Lighttpd基础入门——状态机与插件 #### 一、Lighttpd概述 Lighttpd是一款轻量级的Web服务器软件,以其极低的内存占用率、高效率及丰富的扩展性受到开发者们的青睐。它支持诸如FastCGI、CGI、认证(Auth)、输出...

    lighttpd-1.4.39.tar.gz

    四、安装与配置lighttpd-1.4.39 1. 下载与解压:首先从lighttpd官方网站下载lighttpd-1.4.39.tar.gz,然后使用tar命令解压。 2. 编译安装:运行configure脚本进行配置,指定安装路径,然后执行make和make install。...

    最新lighttpd-1.4.28源码下载

    最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载

    lighttpd简单配置

    在进行lighttpd的安装与配置之前,我们需要确保一些必要的库已经安装完成。根据提供的部分文件内容来看,主要涉及到了以下几步: 1. **安装libtool**:`yum -y install libtool` - `libtool`是一个帮助开发者创建...

    lighttpd-1.4.18

    总的来说,lighttpd-1.4.18是一个兼顾性能与效率的Web服务器解决方案,尤其适合对资源有严格限制的场景。它的轻量级特性、模块化设计和丰富的安全功能,使得它在众多Web服务器中脱颖而出,成为小型和中型网站的理想...

    lighttpd-1.4.32

    《lighttpd-1.4.32:轻量级Web服务器的魅力与应用》 在互联网服务领域,Web服务器作为互联网应用的基础架构组件,扮演着至关重要的角色。lighttpd,一个以轻量级、高性能著称的Web服务器,自其诞生以来就深受开发者...

    lighttpd-1.4.20.tar

    lighttpd-1.4.20.tar lighttpd-1.4.20.tar

Global site tag (gtag.js) - Google Analytics