Sun WebServer 安装指南,Solaris for Intranets 版

迁移 Sun WebServer 1.0 httpd.conf 文件

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 指令
  1. /etc/http/httpd.conf 中寻找下列 Sun WebServer 1.0 指令:


    acl_enable				yes
  2. /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 指令
  1. 假定有以下 Sun WebServer 1.0 指令:


    server {
    	mime_add			"image/.jpeg"			"JPG"
    }
  2. 一定要保证在 /etc/http/server1.httpd.conf 中指定了一个 mime.types 文件:


    注意:

    如果此文件为所有服务器所共享,则变更将会影响所有 httpd 守护程序



    server {
    	mime_file 			"/etc/http/mime.types
    }
  3. 将新的 MIME 映像添加到 /etc/http/mime.types 文件中:


    image/jpeg 			JPG

server{} 块转换
  1. 假定在 /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	
    }
  2. 修改 /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"
    }
  3. 将 MIME 映像添加到 (2) 中指定的 /etc/http/mime.types 文件:


    image/jpeg				JPG

url{}

在 Sun WebServer 1.0 中,一个虚拟主机的所有配置参数都在 /etc/http/httpd.conf 文件中的单一位置。在 Sun WebServer 2.0 中,虚拟主机的全局信息位于服务器级配置文件中,更具体的信息位于站点级的配置文件中。

将一个 Sun WebServer 1.0 url{} 块转换为 2.0
  1. 使用 hthost 命令行实用程序向 2.0 服务器添加新的 Web 站点。

  2. 修改使用 Sun WebServer 1.0 值或 Sun WebServer 2.0 等效创建的新配置文件。

创建 2.0 Web 站点
  1. 向当前服务器 (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)

设置 Web 站点的连接端点
  1. 若要使虚拟主机 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 中,只有下列例外:

map

所有 Sun WebServer 2.0 URL 映射现在都存储在一个单独的文件:map.conf 中。

转换映射指令
  1. 假定在 /etc/http/httpd.conf 中有下列 Sun WebServer 1.0 指令:


    url //widgets {
    	map 		/cgi-bin/			/var/http/shared/cgi-bin/			cgi
    }
  2. 向 widgets 站点的 /var/http/server1/websites/widgets/conf/map.conf 文件添加下列行:


    map 		/cgi-bin/			/var/http/shared/cgi-bin/			cgi

mime_add

转换 mime_add 指令
  1. 假定在 /etc/http/httpd.conf 中有下列 Sun WebServer 1.0 指令:


    url //widgets {
    	mime_add 				"image/jpeg"					"JPG"
    }
  2. 取消对 /var/http/server1/websites/widgets/conf/widgets.site.conf 中的 mime_file 指令的注释:


    url //widgets {
    	mime_file				"conf/mime.types"
    }
  3. /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 地址”。

为一个特定的 IP 地址转换 port{}
  1. 假定有下列 Sun WebServer 1.0 port{} 块:


    port 80 {
    	ip_address									129.128.127.126
    	keepalive_enable			"yes"
    	request_timeout				180
    	hosts_supported					widgets
    }
  2. 修改 /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
    }
  3. /etc/http/server1.httpd.conf 添加 port{} 块(没有 hosts_supported 指令):


    port 80 {
    	ip_address									129.128.127.126
    	keepalive_enable			"yes"
    	request_timeout				180
    }
为所有 IP 地址转换 port{}
  1. 假定有下列 Sun WebServer 1.0 port{} 块示例:


    port 1880 {
    	keepalive_enable				"yes"
    	request_timeout					180
    	hosts_supported					widgets
    }
  2. 修改 /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
    }
  3. /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
    }