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 } |