`

lighttpd基础配置-虚拟主机

阅读更多

 

继续lighttpd的配置,这次测试的内容就是虚拟主机:

引用
1、常规虚拟主机设定
2、简单虚拟主机 mod_simple_vhost
3、复杂虚拟设置匹配 mod_evhost


以下内容,都是在编译/etc/lightpd/lighttpd.conf,保存后,重启lighttpd服务。

一、总体设定
在lighttpd中,设置虚拟主机非常简单,而且不需要加载额外的模块:

引用
$HTTP["host"] == "www.linuxfly.org" {
server.name = "www.linuxfly.org"
server.document-root = "/var/www/html/linuxfly"
server.errorlog = "/var/log/linuxfly-error.log"
accesslog.filename = "/var/log/linuxfly-access.log"
}


设置清楚明了,即设定与www.linuxfly.org域名绑定的虚拟主机在/var/www/html/linuxfly目录。

二、简单虚拟主机设定mod_simple_vhost
mod_simple_vhost模块适用于简单虚拟主机,即只有一个域名,但多个子域名的情况。
一个完整的document root由三个值server-root、hostname、document-root决定,组成:

引用
server-root + hostname + document-root


如果路径不存在,会由默认值组成:

引用
server-root + default-host + document-root


举个例子:

引用
server.modules              += ("mod_simple_vhost")
simple-vhost.server-root   = "/var/www/html/"
simple-vhost.default-host  = "linuxfly.org"
simple-vhost.document-root = "www"
$HTTP["host"] == "news.linuxfly.org" {
server.document-root = "/var/www/html/linuxfly.org/news/"
}


一个完整的document root就是以下目录:

引用
/var/www/html + linuxfly.org + www

/var/www/html/linuxfly.org/www


当访问news.linuxfly.org时,若"/var/www/html/linuxfly.org/news/"存在,则其作为虚拟主机主目录;否则,若不存在,则会把"/var/www/html/linuxfly.org/www"作为主目录。
◎注意,上面的simple_vhost设定适用于所有的域名情况,这会带来一个问题。
如果我不止一个域名,例如,在simple_vhost后面还做了下面的设定,结果如何呢?

引用
$HTTP["host"] == "www.linuxfly.cn" {
server.document-root = "/var/www/html/linuxfly.cn/www/"
}


结果就是,这个设定会无效。即使路径存在,但你访问www.linuxfly.cn还是会出现500错误。
这时,你可以这样做:

引用
$HTTP["host"] != "www.linuxfly.cn" {
simple-vhost.server-root   = "/var/www/html/"
simple-vhost.default-host  = "linuxfly.org"
simple-vhost.document-root = "www"
}


这样,simple_vhost对www.linuxfly.cn忽略,所以,适用于两个域名的情况。不过,我还是觉得不好用。
◎另外,mod_simple_vhost在模块加载时,必须比mod_cache和mod_proxy靠前,否则会带来问题。

三、增强虚拟主机设定mod_evhost
simple_vhost适用的情况太单一。但若对每台虚拟主机都需设定一次参数文件,无疑是件很麻烦的事情。mod_evhost就适用于解决多域名、多子域名的情形。其提供一些参数:

引用
# define a pattern for the host url finding
# %% => % sign
# %0 => domain name + tld
# %1 => tld
# %2 => domain name without tld
# %3 => subdomain 1 name
# %4 => subdomain 2 name


有这些参数以后,路径的设定就简单了:

引用
server.modules              += ("mod_evhost")
$HTTP["host"] =~ "www\.linuxfly" {
evhost.path-pattern        = "/var/www/html/%0/%3"
}


当访问http://www.linuxfly.org时,虚拟主机根目录(document root)就是:

引用
%0 = linuxfly.org
%3 = www
即:
/var/www/html/linuxfly.org/www


既然,lighttpd支持正规表达式,那就可以设置成:

引用
$HTTP["host"] =~ "^(www|www1)\.linuxfly" {
evhost.path-pattern        = "/var/www/html/%0/%3"
}


这样,其他子域名有以下对应:

引用
www1.linuxfly.org => /var/www/html/linuxfly.org/www1
www2.linuxfly.org => /var/www/html/linuxfly.org/www2


可见,用正规格表达式匹配域名,mod_evhost参数代替可变的目录名称,然后动态对应目录路径,可非常方便的处理多虚拟主机的情况。别忘了,还可以用ln -s做目录的软链接哦。

四、其他
充分利用好正规表达式,能简化很多写法:

引用
$HTTP["host"] ~= "^(host\.linuxfly\.org|host\.linuxfly\.cn)$" {......}
$HTTP["host"] ~= "(^|\.)linuxfly\.org$" {......}


不过,请注意,$HTTP["host"]变量是匹配http://xxxx/部分。如果lighttpd监控的不是80端口,那访问的应该是:http://xxxx:port/。这时,上面的$号(表示结尾)就会带来麻烦了。
解决方法嘛!?自己想想哦?

分享到:
评论

相关推荐

    lighttpd-1.4.20-cmake

    lighttpd-1.4.20-cmake

    最新lighttpd源码 lighttpd-1.4.22

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

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

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

    lighttpd-1.4.45_lighttpd服务器_

    lighttpd轻量级web嵌入式服务器,方便嵌入式平台移植,小巧安全

    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程序,安装和配置过程十分简单,也许现在该是讨论用什么手机做服务器更合适的时候了。演示图片为一成功运行的...

    LightTPD-1.4.16-Win32安装版

    高性能轻量级web服务器,具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。

    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-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-1.4.20.tar

    lighttpd-1.4.20.tar lighttpd-1.4.20.tar

    lighttpd配置和启动脚本

    包括lighttpd.conf配置文件以及用于控制web server启动和停止的脚本。

    lighttpd-1.4.20源码分析

    lighttpd-1.4.20源码看了很久了,学习总结本来早就该写了的,只是人懒得很,拖拖拉拉到现在,如果各位看了觉得多少还有那么一点点帮助,我就继续来(当然,总结的东东还是会发在这个帖子内)。 预计总共将有15个...

    lighttpd-1.4.30.tar.gz

    lighttpd-1.4.30.tar.gz压缩包,解压后查阅网上配置过程,配置后即可使用

    lighttpd-1.4.20源代码

    lighttpd-1.4.20源代码

    lighttpd-1.4.39.tar.gz

    lighttpd-1.4.39 一款好用的web服务器

    lighttpd-1.4.26 源码

    lighttpd-1.4.26 源码,官方直接下载,学习的好资源。

    lighttpd-1.4.27 源代码

    lighttpd-1.4.27 源代码 lighttpd-1.4.27 源代码

    varnish+lighttpd配置

    varnish+lighttpd配置

    fcgi-2.4.1-SNAP-0910052249.tar.bz2

    fcgitar -xjvf fcgi-2.4.1-SNAP-0910052249.tar.bz2cd fcgi-2.4.1-SNAP-0910052249./configuremakemake installvim /etc/lighttpd/lighttpd.conf 配置fastcgi模块vim /etc/lighttpd/conf-avaliable/10-fastcgi.conf...

Global site tag (gtag.js) - Google Analytics