lighttpd虚拟主机的配置

[不指定 2010/06/08 07:58 | by admin ]
| |
一、常规虚拟主机的配置

1、在lighttpd.conf最后加上如下代码:

$HTTP["host"] == "www.a.com" {
server.name = "www.a.com"
server.document-root = "/home/wwwroot/htdocs/a"
server.errorlog = "/var/log/lighttpd/www.a.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.a.com-access.log"
}


$HTTP["host"] == "www.b.com" {
server.name = "www.b.com"
server.document-root = "/home/wwwroot/htdocs/b"
server.errorlog = "/var/log/lighttpd/www.b.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.b.com-access.log"
}

2、另建lighttpd-vhost.conf,并在lighttpd.conf里调用
在lighttpd.conf最后加上:
include "/etc/lighttpd/lighttpd-vhost.conf"
新建的lighttpd-vhost.conf内容为:

$HTTP["host"] == "www.a.com" {
server.name = "www.a.com"
server.document-root = "/home/wwwroot/htdocs/a"
server.errorlog = "/var/log/lighttpd/www.a.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.a.com-access.log"
}


$HTTP["host"] == "www.b.com" {
server.name = "www.b.com"
server.document-root = "/home/wwwroot/htdocs/b"
server.errorlog = "/var/log/lighttpd/www.b.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.b.com-access.log"
}

我喜欢用这种方法,文件较简洁,虚拟主机配置全部放入单独的lighttpd-vhost.conf文件,这种方法是参考apache虚拟主机而改来的,在nginx下同样适用。

二、简单虚拟主机

简单的虚拟主机需要使用mod_simple_vhost模块.它的特点是简单的就可以绑定域名,但是如果在商业运作当中,这样也是有很大隐患!在这里只需要将这个模块添加到server.modules中,即:

server.modules              = (
...
"mod_simple_vhost",
...
)

一个完整的document root由三个值server-root、hostname、document-root决定
我们可以这样设定:

simple-vhost.server-root         = "/var/www"
simple-vhost.document-root       = "/public_html/"

Sponsored Links
如果按照以上这样设定,那么我们便可以很方便的绑定多个域名到服务器,只需要在/var/www目录添加文件夹,文件夹就输入需要绑定的域名,然后进入文件夹,在里面建立public_html文件夹就可以实现绑定了.那么完整的路径便是

/var/www/www.xmlchina.org/public_html


三、复杂虚拟设置匹配

复杂虚拟设置匹配,在这里同样需要开启模块的支持,即在server.modules中添加mod_evhost即可,方法如上.

复杂虚拟设置匹配,一般可以用作泛域名解析用,它是使用正则进行匹配,如此便可以实现多子域名的绑定.

在lighttpd.conf中便有这一条的解释

# 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
#
# evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/"

那么我们可以按照官方的方法进行设置,下面是我的配置.

$HTTP["host"] =~ "www.xmlchina.org$" {
evhost.path-pattern        = "/var/www/%0/%3"
}

%0 = xmlchina.org
%3 = www
这里文档路径是/var/www/xmlchina.org/www

还可进行二级域名解析,如:

$HTTP["host"] =~ "^(.*).xmlchina.org$" {
evhost.path-pattern        = "/var/www/%0/%3"
}

%0 = xmlchina.org
%3 = 任意第二级域名前缀

复杂虚拟设置匹配可以实现可变目录的绑定,轻松解决多二级域名的解析难题

总结

这里提供的三个方法,各有各的好处.但是就服务器安全角度来说,建议使用第一条.原因嘛!慢慢琢磨啦.

电脑类 | 评论(0) | 引用(0) | 阅读(661)