配置lighttpd服务器
作者: 出处:# 更新时间:2007-10-25 责任编辑:
 
 

一、lighttpd介绍

在原来的系统中使用apache作为web页面的服务器,apache占用的内存很多,在虚拟机中,一个apache进程占用的内存大约是20M,最大的可能占到35M以上,占用的共享内存都在100多M以上,而且一个系统中一般都存在多个apache进程处理不同的请求,这样虚拟机中apache的进程占用的内存能达到100M。因此在运行多个虚拟机的server中极易出现由于内存不够而无法访问界面的情况。lighttpd是一个非常轻便的web服务器,虽然它的功能没有apache强大,但是可以满足大部分的服务要求。它的内存占用量一般是2M左右,占用的共享内存是20M左右,而且与apache实现机制不同的是,lighttpd采用单进程多路复用的方式响应请求,在系统中一般只有一个lighttpd进程响应服务请求。所以从内存占用量的角度看,lighttpd有很大的优势。

而且,apache需要使用mod_perl或fast-cgi才能提高访问速度,但是系统中配置了lighttpd后,其访问速度没有明显的下降,所以与apache相比,lighttpd是一个理想的web服务器。此外,lighttpd也可以通过配置fast-cgi加速页面的访问。

二、lighttpd的安装和配置

在gentoo环境中安装lighttpd,只需要使用emerge lighttpd命令就可以。安装完后,需要对lighttpd服务器进行配置。

lighttpd的配置文件保存在/etc/lighttpd目录下,在该目录下,有四个配置文件,其中lighttpd.conf是在启动lighttpd时读取的配置文件,其余的配置文件必须经由lighttpd.conf引用后才能生效。mime-types.conf定义了各种文件格式,在lighttpd.conf中默认引用该配置文件。mod_cgi.conf是cgi的配置文件,如果界面文件使用perl_cgi解释,需要在lighttpd.conf中引用该文件,使用该方式解释,其配置方法见下文。mod_fastcgi.conf是使用fast-cgi的配置文件。

2.1 lighttpd.conf的配置

lighttpd.conf文件的前几行分别定义了代码保存路径、日志文件保存路径和状态文件保存路径,如下:

var.basedir = "/usr/local/vsds/rw/perl/UI"

var.logdir = "/var/log/lighttpd"

var.statedir = "/var/lib/lighttpd"

在本例中配置cgi解释,所以在lighttpd中增加引用mod_cgi.conf的包,如下所示:

include "mod_cgi.conf"

server.modules定义了lighttpd运行时要使用的包,因为我们需要使用alias为界面代码保存的路径指定别名,所以需要使用mod_alias这个包,将其前面的"#"去掉就可以。

其次在该文件中还可以定义服务的端口号、日志文件的名字等,一般保持默认配置。

2.2 mod_cgi.conf的配置

在mod_cgi中指定界面文件保存路径的别名,是否在请求时要列出该目录下所有文件(对于下载目录有意义),对于保存perl文件的路径一般要指定其解释器(可选)。mod_cgi.conf文件的内容如下:

server.modules += ("mod_cgi")

# NOTE: this requires mod_alias

alias.url = (

"/cgi-bin/" => var.basedir + "/controller/",

"/icons/vsds/" => var.basedir + "/icons/vsds/",

"/disaster/" => "/usr/local/vsds/rw/perl/DUI/html/",

"/gif/" => "/usr/local/vsds/rw/perl/DUI/icons/",

"/controller/" => "/usr/local/vsds/rw/perl/DUI/controller/"

)

#

# Note that you'll also want to enable the

# cgi-bin alias via mod_alias (above).

#

$HTTP["url"] =~ "^/cgi-bin/" {

# disable directory listings

dir-listing.activate = "disable"

# only allow cgi's in this directory

cgi.assign = (

".pl" => "/usr/bin/perl",

".cgi" => "/usr/bin/perl"

)

}

$HTTP["url"] =~ "^/icons/vsds/" {

dir-listing.activate = "disable"

}

$HTTP["url"] =~ "^/disaster/" {

dir-listing.activate = "disable"

}

$HTTP["url"] =~ "^/gif/" {

dir-listing.activate = "disable"

}

$HTTP["url"] =~ "^/controller/" {

# disable directory listings

dir-listing.activate = "disable"

# only allow cgi's in this directory

cgi.assign = (

".pl" => "/usr/bin/perl",

".cgi" => "/usr/bin/perl"

)

}

在该配置文件中配置了多个请求,属性dir-listing.activate指定是否在请求该目录时列出所有文件,一般定义为“disable”。因为在一个完整的lighttpd.conf文件中只允许定义一个alias结构,在引用了mod_cgi.conf后,mod_cgi.conf中定义了alias模块,所以只能将所有的alias都定义在该文件中,包括图标路径、html路径和perl路径,如配置文件所示。

2.3 配置ssl

lighttpd支持通过ssl传送数据,而且配置也很简单。在配置ssl之前,需要先生成lighttpd的pem文件,生成.pem的命令如下:

cd /etc/ssl/certs

openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes

chown www-data:www-data lighttpd.pem

chmod 600 lighttpd.pem

在安装时,可以直接将lighttpd.pem拷贝到/etc/ssl/certs下,然后在lighttpd.conf文件中指定需要ssl认证,将lighttpd.conf中关于ssl配置语句前的"#"去掉,并在ssl.pemfile处指定正确的pem文件的路径。

ssl.engine = "enable"

ssl.pemfile = "/etc/ssl/certs/lighttpd.pem"

启动lighttpd服务,/etc/init.d/lighttpd start 就可以了

 
     
 
 
继续>>lighttpd
[第1页][第2页][下一页]
 
内容导航  
第1页配置lighttpd服务器 第2页lighttpd
上一篇 : 关掉 lighttpd 目录浏览 下一篇虚拟光驱DAEMON Tools不..
 
  您要为所发表的言论的后果负责,请各位遵纪守法并注意文明用语
标题:  

[ 关于本站 ] [ 广告服务 ] [ 商务合作 ] [ 联系我们 ] [ 合作伙伴 ] [ 法律顾问 ] [ 网站地图 ]
千橡公司 京ICP证041489号 Copyright (c) 1997-2007 All Right Reserved.