Sun WebServer 1.0 /etc/http/httpd.conf 文件含有用来配置整个服务器、单个虚拟主机及端口的基本指令。三个主块类型为 server{} 块、 url{} 块和 port{} 块。这些类型的每一种都将在本节进行讨论。
server{} 块将 server{} 块从 Sun WebServer 1.0 转换为 Sun WebServer 2.0 格式,相对来说比较简单。1.0 中的大部分指令与 2.0 相同,只有下列例外:
acl_delegate_depth
Sun WebServer 不再支持 acl_delegate_depth 指令及访问控制代理概念。参见本文档中的“迁移 Sun WebServer 1.0 access.acl 文件”。
acl_enable
acl_enable 指令已经变更为 access_enable。
acl_enable 指令 在 /etc/http/httpd.conf 中寻找下列 Sun WebServer 1.0 指令:
acl_enable yes |
在 /etc/http/server1.httpd.conf 中用下列指令替换它:
access_enable yes |
acl_file
acl_file 指令在 server{} 块中不再被支持,因为服务器级的访问控制文件现在配置为:/etc/http/access.conf。此文件名不能变更。
map
map 指令在 server{} 块中不再被支持。所有 URL 映射必须在 Web 站点的 map.conf 文件中进行。
mime_add
mime_add 指令在 Sun WebServer 2.0 中不再被支持。所有 MIME 类型都必须在服务器或站点级的 mime.types 文件中指定。
mime_add 指令 假定有以下 Sun WebServer 1.0 指令:
server {
mime_add "image/.jpeg" "JPG"
}
|
一定要保证在 /etc/http/server1.httpd.conf 中指定了一个 mime.types 文件:
如果此文件为所有服务器所共享,则变更将会影响所有 httpd 守护程序
server {
mime_file "/etc/http/mime.types
}
|
将新的 MIME 映像添加到 /etc/http/mime.types 文件中:
image/jpeg JPG |
server{} 块转换假定在 /etc/http/httpd.conf 中有以下 Sun WebServer 1.0 server{} 块:
server {
server_root "/var/http/demo/"
server_user "root"
mime_add "image/jpeg" "JPG"
mime_default_type text/html
acl_enable "yes"
acl_file "/etc/http/access.acl"
acl_delegate_depth 3
map /cgi-bin/ /var/http/cgi-bin/ cgi
}
|
修改 /etc/http/server1.httpd.conf 中的 server{} 块:
server {
server_root "/var/http/demo/"
server_user "http"
mime_file "/etc/http/mime.types"
mime_default_type text/html
access_enable "yes"
}
|
将 MIME 映像添加到 (2) 中指定的 /etc/http/mime.types 文件:
image/jpeg JPG |
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 |
port{} 块在 Sun WebServer 2.0 中,port{} 块有两个主要变更:hosts_supported 指令不再有效,因为主机侦听的端口现在使用 url{} 块中的 conn_end_points 指令列出,所有端口都必须指定一个 ip_address。IP 地址 0.0.0.0 是特殊的,表示“本机上所有有效的 IP 地址”。
port{} 块假定有下列 Sun WebServer 1.0 port{} 块:
port 80 {
ip_address 129.128.127.126
keepalive_enable "yes"
request_timeout 180
hosts_supported widgets
}
|
修改 /etc/http/server1.httpd.conf 中的 widgets url{} 块,以便正确指定 conn_end_points:
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
}
|
向 /etc/http/server1.httpd.conf 添加 port{} 块(没有 hosts_supported 指令):
port 80 {
ip_address 129.128.127.126
keepalive_enable "yes"
request_timeout 180
}
|
port{} 块假定有下列 Sun WebServer 1.0 port{} 块示例:
port 1880 {
keepalive_enable "yes"
request_timeout 180
hosts_supported widgets
}
|
修改 /etc/http/server1.httpd.conf 中的 widgets url{} 块,以便正确指定 conn_end_points:
url //widgets {
site_enable "yes"
site_path "/var/http/server1/websites/widgets"
site_config "conf/widgets.site.conf"
conn_end_points :1880
}
|
向 /etc/http/server1.httpd.conf 中的 port{} 块添加具有 0.0.0.0 值的 ip_address 指令:
port 1880 {
ip_address 0.0.0.0
keepalive_enable "yes"
request_timeout 180
}
|