`

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/。这时,上面的$号(表示结尾)就会带来麻烦了。
解决方法嘛!?自己想想哦?

分享到:
评论

相关推荐

    Linux服务器端Web服务三剑客(Apache Lighttpd Nginx).docx

    3. **虚拟主机配置** (`Virtual Hosts`) - 可以在一台服务器上运行多个不同的网站。 Apache提供了多种容器用于控制不同层次的配置,如`Directory`、`File`、`Location`等,以实现更为精细的控制。例如: ```apache...

    三大WEB服务器配置文档

    5. **配置虚拟主机**:根据需求配置多个网站,通过修改`/etc/apache2/sites-available`目录下的配置文件。 接下来是**LIGHTTPD服务器**,它是一款轻量级、快速且低内存占用的Web服务器,适合小型网站和高并发环境。...

    c web server library

    这涉及到理解配置文件的语法、设置虚拟主机、调整性能参数等。 7. **开发与扩展**:除了基本的使用,开发者还可以根据需求扩展Lighttpd的功能,比如编写新的模块或插件,以满足特定的业务逻辑。 总的来说,"c web ...

    linux c web服务器简单实现.docx

    - 相较于micro_httpd,mini_httpd支持更多功能,如GET、HEAD、POST方法,CGI脚本执行,基础验证,多根目录的虚拟主机等。 - 支持使用`index.html`, `index.htm`, `index.cgi`作为首页,以及标准的日志记录和自定义...

    Linux Web服务器配置.rar

    5. **设置虚拟主机**:如果服务器托管多个网站,需配置虚拟主机以区分不同的域名和目录。 6. **安全强化**:启用HTTPS,配置SSL/TLS证书,限制不必要的访问,如使用`mod_security`模块增强Apache的安全性。 7. **...

    Nginx-笔记1

    在本课程中,我们将深入探讨Nginx的相关知识,包括反向代理和正向代理的概念,常用Web服务器的对比,Nginx的安装部署,核心配置分析,虚拟主机配置,Location匹配规则,以及日志配置和切割处理。 首先,理解【反向...

    nginx-1.6.2.tar.gz nginx-1.6.2下载

    - **配置文件**:主要配置文件为`nginx.conf`,通过修改该文件可以设置监听端口、服务器块、虚拟主机、路由规则等。 - **启动与管理**:使用`nginx`命令启动、停止或重启服务,也可以通过`systemctl`(Systemd)或...

    Linux的www服务

    配置虚拟主机时,需要在Apache的配置文件(如`/etc/httpd/conf/httpd.conf`)中添加对应的ServerName、DocumentRoot等参数,然后重启服务器使更改生效。 2. 磁盘列阵管理:为了提高数据的可靠性和性能,Linux支持...

    web服务器搭建和域名访问网站.docx

    2. **配置Apache**:编辑Apache的配置文件,例如httpd.conf,设置虚拟主机以支持域名访问。 3. **部署网站内容**:将博客的HTML、CSS、JavaScript等静态资源上传至Apache的文档根目录。 4. **设置DNS解析**:登录...

    大型网站架构大型网站架构

    - **技术选型**:基于Apache、Lighttpd、Eginx等构建虚拟主机平台,并提供PHP运行环境。服务器对开发人员透明,无需介入管理。 2. **负载均衡系统** - **分类**:硬件负载均衡与软件负载均衡。 - **硬件负载均衡...

    web server

    3. 虚拟主机:通过虚拟主机,一台服务器可以同时托管多个独立的网站,每个网站有自己的域名和配置。 4. SSL/TLS安全:为了保护数据传输安全,Web服务器通常需要配置SSL证书,启用HTTPS协议,提供加密通信。 5. ...

    浅议大型网站动态应用系统架构.doc

    1. **Web前端系统**:前端系统基于Apache/Lighttpd/Nginx等虚拟主机平台,提供PHP等程序运行环境。为了实现服务器资源共享、避免单点故障,采用统一管理的策略,使得每台服务器都能服务于多个应用,通过增加服务器...

    杰奇1.7完全功能破解版(含注册机及wap)

    * 虚拟主机 虽然我们建议您在独立服务器上运行 JIEQI CMS 系统,但我们也为需要在虚拟主机上运行 JIEQI CMS 系统的用户提供全面的运行环境检查服务 系统特色 灵活架构 - 基于框架的开发模式,程序拥有统一...

    实战Nginx 高性能web服务器

    在Nginx的基本配置中,需要了解虚拟主机的配置、日志文件的管理、内容压缩输出、自动列目录以及浏览器本地缓存设置等关键部分。这些配置项对于提升Web服务的效率和用户体验至关重要。 Nginx与其他后端技术的整合 ...

    http_server_base.rar_The Common

    在Web服务器开发中,这样的工具可能包括处理端口绑定、日志管理、虚拟主机配置、SSL证书设置、错误处理以及性能优化等任务。通过封装这些过程,它可以帮助开发者更便捷地部署和管理服务器。 在实际应用中,"The ...

    运维架构师笔记(简洁标签版) 下

    ULE基础与服务是与Linux系统相关的概念,可能是指用户空间的Linux环境(User Space Linux Environment)或者是一个特定的Linux发行版。文件中没有具体描述ULE,故这部分知识无法展开。 #### MySQL MySQL是一个流行...

    Trac0.12搭建&插件&注意点

    配置文件通常在Web服务器的配置目录中,需要添加适当的模块和虚拟主机设置。 Trac的插件扩展了其功能,例如,你可以通过`trac-admin /path/to/your/trac/env plugin install plugin_name`来安装插件。Trac 0.12支持...

Global site tag (gtag.js) - Google Analytics