url{}
块在 Sun WebServer 1.0 中,一个虚拟主机的所有配置参数都在 /etc/http/httpd.conf 文件中的单一位置。在 Sun WebServer 2.0 中,虚拟主机的全局信息位于服务器级配置文件中,更具体的信息位于站点级的配置文件中。
url{}
块转换为 2.0向当前服务器 (server1) 添加一个 Web 站点 (widgets):
# hthost add -i server1 -h widgets \ -s /var/http/server1/websites/widgets |
这将会向服务器级配置文件 /etc/http/server1.httpd.conf 添加下列条目:
url //widgets { site_enable "yes" site_path "/var/http/server1/websites/widgets" site_config "conf/widgets.site.conf" } |
它还将在 /var/http/server1/websites/widgets/ 创建一个新的 Web 站点。下列配置文件将放在目录 /var/http/server1/websites/widgets/conf/ 中:
widgets.site.conf
access.conf
realms.conf
map.conf
content.conf
servlets.properties
Sun WebServer 1.0 url{}
块的大部分配置参数将放置在站点级配置文件 widgets.site.conf 中。一个例外是设置虚拟主机侦听的端口。对于每一个虚拟主机,都必须指定它在哪个 IP 地址和端口接收连接(这与 1.0 不同,在 1.0 中,该信息存储在使用 hosts_supported
指令的 port{}
块中)。IP 地址:端口对在 Sun WebServer 2.0 中称为“连接端点”。所有 Web 站点的连接端点都应被指定(缺省 Web 站点例外,该站点在所有接口上侦听,不允许连接端点被定义)。有关连接端点的详细信息,参见 httpd.conf (4)。
若要使虚拟主机 widgets 接受端口 80 上的 IP 地址 129.128.127.126 及端口 1880 上的所有 IP 地址的连接,请在 /etc/http/server1.httpd.conf 中写入下列内容:
url //widgets { site_enable "yes" site_path "/var/http/server1/websites/widgets" site_config "conf/widgets.site.conf" conn_end_points 129.128.127.126:80:1880 } |
不在冒号 (:) 左侧指定 IP 地址在 HTTP 1.1 虚拟主机中将缺省为“所有 IP 地址”。还要注意所有指定的连接端点都必须被 port{}
块映射。
大部分 Sun WebServer 1.0 url{}
块配置指令可以直接复制到 Sun WebServer 2.0 站点级配置文件:/var/http/server1/websites/widgets/conf/widgets.site.conf 中,只有下列例外:
所有 Sun WebServer 2.0 URL 映射现在都存储在一个单独的文件:map.conf 中。
假定在 /etc/http/httpd.conf 中有下列 Sun WebServer 1.0 指令:
url //widgets { map /cgi-bin/ /var/http/shared/cgi-bin/ cgi } |
向 widgets 站点的 /var/http/server1/websites/widgets/conf/map.conf 文件添加下列行:
map /cgi-bin/ /var/http/shared/cgi-bin/ cgi |
mime_add
mime_add
指令 假定在 /etc/http/httpd.conf 中有下列 Sun WebServer 1.0 指令:
url //widgets { mime_add "image/jpeg" "JPG" } |
取消对 /var/http/server1/websites/widgets/conf/widgets.site.conf 中的 mime_file
指令的注释:
url //widgets { mime_file "conf/mime.types" } |
向 /var/http/server1/websites/widgets/conf/mime.types 文件添加新的 MIME 映像:
image/jpeg JPG |