Lighttpd 虚拟主机配置〜基于名称的虚拟主机
问:如何将 lighttpd 网络服务器配置为虚拟主机,以便从单个公共 IP 地址(基于名称的虚拟主机)为多个网站提供服务?
答:虚拟主机是一种服务器(例如网络服务器)用来在同一台服务器上(有时在同一个 IP 地址上)托管多个域名的方法。
实现虚拟主机有两种基本方法。
(A)基于名称的虚拟主机:对同一个 Web 服务器 IP 地址使用多个主机名。例如,域 example.com 和 theos.in 使用同一个 IP 地址 65.111.211.111。
(二)IIP地址/基于ip的虚拟主机
如何配置 Lighttpd 以实现基于名称的虚拟主机?
假设您的设置如下:
- 公共 IP 地址:72.12.5.10
- 域名:domain1.com 和 domain2.net
- 默认文档根目录:/home/lighttpd/default/http
- domain1.com 的默认文档根目录:/home/lighttpd/domain1.com/http
- domain2.net 的默认文档根目录:/home/lighttpd/domain2.net/http
首先,创建所需的目录:
# mkdir -p /home/lighttpd/default/http
接下来,打开 lighttpd.conf 文件:
# vi /etc/lighttpd/lighttpd.conf
设置默认文档根目录:
server.document-root = "/home/lighttpd/default/http/"
设置公网 IP 地址:
在文件底部添加:
保存并关闭文件。
server.port = 80
server.bind = "72.12.5.10"
include "domain1.com.conf"
include "domain2.net.conf"
创建domain1.com虚拟主机配置
创建所需目录:
# mkdir -p /home/lighttpd/domain1.com/http
# mkdir -p /home/lighttpd/domain1.com/logs
打开 /etc/lighttpd/domain1.com.conf 文件:
# vi /etc/lighttpd/domain1.com.conf
添加以下配置指令:
$HTTP["host"] =~ "domain1\.com" { server.document-root = "/home/lighttpd/domain1.com/http" accesslog.filename = "/home/lighttpd/domain1.com/logs/access.log" }
保存并关闭文件。
创建domain2.net虚拟主机配置
创建所需目录:
# mkdir -p /home/lighttpd/domain2.net/http
# mkdir -p /home/lighttpd/domain2.net/logs
打开 /etc/lighttpd/domain2.net.conf 文件:
# vi /etc/lighttpd/domain2.net.conf
添加以下配置指令:
$HTTP["host"] =~ "domain2\.net" { server.document-root = "/home/lighttpd/domain2.net/http" accesslog.filename = "/home/lighttpd/domain2.net/logs/access.log" }
保存并关闭文件。
重新启动 lighttpd 网络服务器:
# /etc/init.d/lighttpd restart
确保文档根目录归你的 Web 服务器用户所有,例如 www-data 或 lighttpd:
# chown -R lighttpd:lighttpd /home/lighttpd/