之前因为没怎么弄懂这个,于是总是没法再vhosts启用独立的证书,导致一直都只能有一个使用https链接,今天因为刚买了一个域名,于是将全部的vhosts都改了一下,终于弄懂是怎么回事。

官方文档一堆一堆的英文真是看得我头痛呢, 后来折腾的时候终于弄懂它说的是什么意思……

首先,你需要一个这样的设定

$SERVER["socket"] == ":443" {
server.document-root = "/www/site"
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd.keys/cert.pem"
}

当你需要在vhosts上使用的时候,你需要这样写

$SERVER["socket"] == ":443" {
    ssl.engine = "enable"
    ssl.pemfile = "/path/to/cert.pem"

    $HTTP["host"] == "host1.com" {
    #some server setting
    )
    }
    $HTTP["host"] == "server2.com" {
    #some server setting
    }
}

然后,在另外的vhosts的设定里面加上

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

这样就可以覆盖掉证书的默认值从而使用不同的证书。

因为最新换了Lighttpd呢,在装Wordpress的过程中,看见了一些比较有趣的代码($HTTP[“host”] )就稍微研究了一下,发现,这个vhosts真的是非常强力啊,V5的一比那啥。在使用同一个IP地址的时候,根据不同的域名,进入不同的网站根目录……

恩,然后现在直接访问网站IP和访问域名会得到不同的结果,这可真是厉害的说。

感叹完了,以下是相关使用说明:

参考:

Lighttpd virtualhost configuration ~ name-based virtual hosting 


Lighttpd的vhosts配置是

$HTTP[“host”] =~ “domain1\.com” {
server.name = “domain1\.com”
server.document-root = “/home/lighttpd/domain1.com/http”
}

 可以写在lighttpd.conf,也可以写在外部然后在lighttpd.conf里面写上include。当然也可以加上其他的设置,比如说server.dir-listing,之类的(更多的设定我也没有接触到)。

似乎还有Alias之类的虚拟文件夹,以后再研究。