Sun WebServer 安裝手冊 Solaris Easy Access Server 版

轉移 Sun WebServer 1.0 httpd.conf 檔案

Sun WebServer 1.0 的配置檔案 /etc/http/httpd.conf 內含有設定伺服器、各虛擬主機以及通訊埠的所有基本指引設定,其中三個主要的區塊類型分別為 server{} 區塊、url{} 區塊以及 port{} 區塊,將於本小節中詳加探討。

server{} 區塊

將 Sun WebServer 1.0 的 server{} 區塊轉換成 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

server{} 區塊內已經不再支援 acl_file 指引了,因為伺服器層級的存取權控制檔案已經換成: /etc/http/access.conf。此檔案的名稱不可更改。

對應

server{} 區塊內已經不再支援 map 指引。所有 URL 對應都必須在網站的 map.conf 檔案中加以設定。

mime_add

Sun WebServer 2.0 已經不再支援 mime_add 指引。所有 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. /etc/http/mime.types 檔案內加入新的 MIME 對應:


    image/jpeg 			JPG

server{} 區塊轉換
  1. 假設要轉換以下的 Sun WebServer 1.0 在 /etc/http/httpd.conf 內的 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 伺服器內增加一個新的站台。

  2. 修改以 Sun WebServer 1.0 設定值或 Sun WebServer 2.0 同類設定值而建立的新配置檔案。

建立 2.0 網站
  1. 在目前的伺服器 (server1) 上增加一個站台 (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/ 內建立一個新的站台,而 /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 版的作法是將這些資訊放在 port{} 區塊內,並使用 hosts_supported 指令。)IP 位址與通訊埠合起來在 Sun WebServer 2.0 內稱為「連線端點」,所有網站都必須設定其連線端點(內定站台例外,因為內定站台會在所有的介面上接聽,因此不可 設定連線端點)。有關連線端點的詳細資訊,請參閱 httpd.conf (4)

設定網站連線端點
  1. 若要讓虛擬主機 widgets 在 IP 位址 129.128.127.126 的通訊埠 80 以及所有 IP 位址的通訊埠 1880 上接收連線,請在 /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 內。

轉換對應設定指令
  1. 假設 Sun WebServer 1.0 的 /etc/http/httpd.conf 檔案內有以下設定:


    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. 假設 Sun WebServer 1.0 的 /etc/http/httpd.conf 內含有以下設定:


    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. 將以下新的 mime 對應設定加入 /var/http/server1/websites/widgets/conf/mime.types 檔案內:


    image/jpeg					JPG

port{}區塊

Sun WebServer 2.0 內的 port{} 區塊有兩個主要的改變: 由於主機接聽用的通訊埠已經改成用 url{} 區塊內的 conn_end_points 指令加以設定,因此 hosts_supported 指令已經不能使用了,而且所有通訊埠都必須設定 ip_address。0.0.0.0 這個特殊的 IP 位址表示「此電腦上所有正確的 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. port{} 區塊加入 /etc/http/server1.httpd.conf 內(不要有 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.confport{} 區段內加上含 0.0.0.0 值的 ip_address 指令:


    port 1880 {
    	ip_address									0.0.0.0
    	keepalive_enable			"yes"
    	request_timeout				180
    }