Sun WebServer 2.0 與 Sun WebServer 1.0 的差異頗大,因此 Sun WebServer 1.0 的配置檔案必須轉換成與 Sun WebServer 2.0 相容的檔案才行。本文件將說明如何進行檔案轉換。至於 Sun WebServer 2.0 新功能的詳細說明,請參閱 Sun WebServer 2.0 的文件。
雖然 Sun WebServer 1.0 與 Sun WebServer 2.0 可安裝在同一台機器上,但卻不可放在同一個目錄下。安裝 Sun WebServer 2.0 之前,必須將 Sun WebServer 1.0 完全移除。只有當 Sun WebServer 1.0 不是安裝在內定目錄(也就是 "/" 以外的目錄)時,才能與 Sun WebServer 2.0 並存。至於如何將 Sun WebServer 1.0 安裝在非內定目錄內,請參閱「Sun WebServer 1.0 的安裝手冊」。本文件提到 Sun WebServer 1.0 的配置檔案 httpd.conf 與 access.acl),均假設為內定的安裝位置 /etc/http/。移除 Sun WebServer 1.0 之後( 必須在安裝 Sun WebServer 2.0 之前完成),這些配置檔案便會被移到備份目錄 /etc/http.bak[.n]/ (例如 /etc/http.bak/、/etc/http.bak.1/、/etc/http.bak.2/,...)內。此目錄內檔案名稱結尾數字最高的檔案,即為最近一次解除安裝的配置檔案。
雖然 Sun WebServer 1.0 也能同時執行好幾個 HTTP 伺服器,但啟動、停止以及重新啟動伺服器等動作的效率,都是在只有一個 HTTP 常駐程式實例時為最佳。Sun WebServer 2.0 則在這方面有所改善,讓系統中的每個 httpd 常駐程式均有各自的名稱,以便許多 httpd 行程能同時執行,並且讓使用者能用各 httpd 行程的的名稱啟動、停止與重新啟動。詳細資訊請參閱 htserver(1m) 線上援助頁。
Sun WebServer 2.0 同時也增加了支援虛擬主機的功能。每個虛擬主機各自負責一個網站,且在檔案系統中擁有自己的子層樹狀結構,其中含有該主機的配置檔案以及文件根。以前 Sun WebServer 1.0 將虛擬主機的所有配置資訊全部放在整體配置檔案 httpd.conf 內,但 Sun WebServer 2.0 卻將各虛擬主機的大部份配置資訊存放在該虛擬主機負責網站之目錄底下的配置檔案內。將各站台的配置資訊從同一個檔案中抽出,分散到各自的配置檔案內,讓 Sun WebServer 2.0 具有比 Sun WebServer 1.0 更良好的延展性,且簡化個別網站的管理工作。
Sun WebServer 1.0 在內定路徑 /etc/http/ 中共有兩個主要的配置檔案:
httpd.conf:伺服器以及所有虛擬主機的基本配置資訊
access.acl:URL 存取權控制設定
Sun WebServer 2.0 將這些檔案中的指引分割成伺服器實例的伺服器層級配置檔案以及個別網站的站台層級配置檔案。
伺服器層級配置檔案內定安裝在 /etc/http/ 內。 <instance_name> 以下是使用此檔案的 httpd 實例的唯一名稱。每個 httpd 實例名稱當初用「Sun WebServer 管理主控台」或 htserver add 指令建立時,便已經與某個伺服器實例產生關聯。
<instance_name>.httpd.conf:伺服器層級配置資訊
access.conf:URL 存取權控制
realm.conf:領域資訊
mime.types:MIME 類型與編碼方式
站台層級配置檔案內定安裝在各站台的目錄結構下。<site_name> 以下為使用此檔案的網站名稱。
<site_name>.site.conf:站台基本配置資料
access.conf:URL 存取權控制
realm.conf:領域資訊
mime.types:MIME 類型與編碼方式
map.conf:URL 對應
content.conf:內容資訊
以上所列檔案名稱均是建議使用的名稱。唯一不可更改的配置檔案名稱為 /etc/http/httpd-instances.conf。每個伺服器實例與基本配置檔案都列在 httpd-instances.conf 內,而每個伺服器的配置檔案內則設定了其他配置檔案的名稱。
Sun WebServer 2.0 增加了許多修改配置檔案的指令行公用程式。本文件許多地方說明如何轉移到 Sun WebServer 2.0 時,都會用到這些公用程式。關於指令行可用之所有 Sun WebServer 公用程式的詳細說明,請參閱 Sun WebServer 2.0 線上援助頁。本文件中提到的指令,則請參閱 htserver(1m)、hthost(1m) 與 htrealm(1m) 線上援助頁。至於配置檔案,請參閱 httpd.conf(4)、httpd.site.conf(4)、access.conf(4) 與 realms.conf(4)。Sun WebServer 2.0 也提供了「管理主制台」,附在 SUNWhtadm
套裝軟體內,可用於管理整個 HTTP 伺服器。要使用「管理主控台」,必須安裝 SUNWixklg
與 SUNWixavm
。
將 Sun WebServer 1.0 配置檔案轉換成 Sun WebServer 2.0 格式之前,請先將一個基本的 Sun WebServer 2.0 伺服器實例加入系統內。此伺服器軟體含有 Sun WebServer 2.0 使用的檔案結構,可當作內定配置檔案,然後根據 Sun WebServer 1.0 伺服器的設定值加以修改之。
在指令行鍵入以下指令(以 root
身份執行):
# htserver add "server1" |
此指令會建立一個新的 Sun WebServer 2.0 伺服器層級配置檔案,以及一個內定的網站。新檔案的安裝目錄如下:
/etc/http/server1.httpd.conf:伺服器配置檔案
/var/http/server1/:新伺服器的根目錄
/ver/http/server1/websites/default_site/:內定網站的路徑
/var/http/server1/websites/default_site/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
指引 在 /etc/http/httpd.conf 內搜尋下列 Sun WebServer 1.0 指引:
acl_enable yes |
將 /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
指令 假設要轉換以下的 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 } |
在 /etc/http/mime.types 檔案內加入新的 MIME 對應:
image/jpeg JPG |
server{}
區塊轉換 假設要轉換以下的 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 } |
修改 /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) 上增加一個站台 (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)。
若要讓虛擬主機 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 內。
假設 Sun WebServer 1.0 的 /etc/http/httpd.conf 檔案內有以下設定:
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
指令 假設 Sun WebServer 1.0 的 /etc/http/httpd.conf 內含有以下設定:
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" } |
將以下新的 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 位址。
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 } |
將 port{}
區塊加入 /etc/http/server1.httpd.conf 內(不要有 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 } |
Sun WebServer 1.0 的存取權控制到 Sun WebServer 2.0 已經有很大的改變。要將舊的 Sun WebServer 存取權控制結構轉移到新版之前,請先閱讀 Wun WebServer 2.0 的存取權控制文件。以下列出最明顯的改變之處:
領域這種觀念已經擴展到相當大的範圍,並且增加了一個新的配置檔案 realm.conf。
存取權控制委託這項功能已經刪除。
"/sws-administration" 這個 URL 的存取權控制在 Sun WebServer 內都有作用,若在伺服器層級配置檔案 access.conf 中指定此 URL,則可用於決定伺服器的管理者,若在站台層級配置檔案 access.conf 中指定此 URL,則可決定站台的管理者。
/etc/http/access.conf 這個伺服器層級的配置檔案(位於 /etc/http/access.conf)對於系統上所有實例均有作用。此檔案含有一個 "/sws-administration" URL,定義誰有權管理所有伺服器軟體。
每個網站都有各自的站台層級檔案 access.conf,以指定各站台的管理者。
現在領域可以從更多來源取得使用者的資料,亦可利用標準的 HTPASSWD
資料庫或 NIS+ 資料庫對使用者進行辨證。
要將 Sun WebServer 1.0 access.acl 檔案轉移成 2.0,必須建立或選擇一個辨證領域,將對應的 URL 存取權控制語法改成符合新的 2.0 語法,並將 access.acl 檔案和委託檔案內的存取權控制收集在每個網站的 access.conf 檔案內。
在 Sun WebServer 1.0 中,realm
設定指引除了當作瀏覽程式的識別碼之外(顯示在辨證對話框內),並無其他多大用處。但在 Sun WebServer 2.0 內,領域設定了早先存在的一組使用者與群組,以辯證是否有權存取某個 URL。領域資料存放在 realms.conf 檔案內。 HTPASSWD
領域有各自的目錄(定義於 realm.conf 中),其中含有進行辨證時會用到的 users 與 groups 檔案。因此 Sun WebServer 1.0 ACL 中的 password_file
以及 group_file
設定指引便沒有作用了。所有 1.0 的領域在
2.0 中都是 HTPASSWD
領域,因為這些使用者建立的資料庫是 1.0 中唯一的資料來源。
假設主機 widgets 的 Sun WebServer 1.0 /etc/http/access.acl 存取權控制設定如下:
url /reports { realm Managers authentication_type basic password_file /usr/auth/Managers/Maners_users group_file /usr/auth/Managers/Managers_groups + group report_managers - user Joe } |
建立一個領域以存放密碼和群組檔案,方法如下:
# htrealm add -i server1 -h widgets -r Managers -s HTPASSWD |
以上指令會在站台的 realms.conf 中加入以下設定:
realm Managers { realm_source HTPASSWD } |
以上指令也會在站台建立以下目錄:
/var/http/server1/websites/widgets/conf/realms/Managers/ |
將 users 與 groups 檔案複製到 Managers 目錄內:
# cp /usr/auth/Managers/Managers_users \ /var/http/server1/websites/widgets/conf/realms/Managers/users # cp /usr/auth/Managers/Managers_groups \ /var/http/server1/websites/widgets/conf/realms/Managers/groups |
刪除 Sun WebServer 1.0 ACL 中的檔案設定指引,然後將新的 ACL 放入 Sun WebServer 2.0 ACL 檔案內: /var/http/server1/websites/widgets/conf/access.conf:
url /reports { realm Managers authentication_type basic + group report_managers - user Joe } |
Sun WebServer 2.0 已經不再採用委託的觀念。以前放在委託檔案內的所有存取權控制,都必須移到各站台的 access.conf 檔案內集中放置。
假設以下的 Sun WebServer 1.0 ACL 與委託檔案:
/etc/http/access.acl 中的 ACL:
url /statistics { delegate /var/http/acls/.admin_acl } |
/var/http/acls/.admin_acl 檔案:
realm admin password_file /usr/auth/admin_user group_file /usr/auth/admin_group + group stat_admins |
這些都必須收合到同一個 ACL 內:
請先建立領域 admin
,方法請參閱前一個範例。
url /statistics { realm admin + group stat_admins } |
假設以下的 Sun WebServer 1.0 ACL 與委託檔案:
access.acl 內的 ACL:
url /statistics { delegate /var/http/acls/.admin_acl } |
/var/http/acls/.admin_acl 檔案 (此檔案擁有權屬於 joe:adm
)
realm admins password_file /usr/auth/admin_user group_file /usr/auth/admin_group + group stat_admins |
這些設定必須收合到一個 ACL::
url /statistics { realm admins administrators { user joe group adm } + group stat_admins } |
以下範例示範 Sun WebServer 1.0 httpd.conf 與 access.acl 轉換成 Sun WebServer 2.0 的完整過程。除非轉換需要用到新的 2.0 設定指引,否則新的 2.0 設定指令在以下範例中一律不予處理。
假設以下 Sun WebServer 1.0 /etc/http/httpd.conf 檔案:
server { server_root "/var/http/demo" server_user "root" mime_file "/etc/http/mime.types" mime_default_type text/html acl_enable "yes" acl_file "/etc/http/access.acl" acl_delegate_depth 3 cache_enable "yes" cache_small_file_cache_size 8 cache_large_file_cache_size 256 cache_max_file_size 1 cache_verification_time 10 map /cgi-bin/ /var/http/demo/cgi-bin/ cgi map /sws-icons/ /var/http/demo/sws-icons/ mime_add "appication/java" class mime_add "audio/basic" au mime_add "audio/basic" snd } url { doc_root "/var/http/demo/public" user_doc_enable "no" user_doc_root "public_html" cgi_enable "no" cgi_dns_enable "no" cgi_suffix_enable "no" cgi_user "nobody" log_type "elf" log_prefix "/var/http/logs/http" log_max_files 7 log_cycle_time 1440 log_max_file_size 1048576 ssi_enable "no" ssi_exec "no" ssi_xbithack "off" mime_add "application/x-csh" csh mime_add "application/xsh" sh } url //widgets { doc_root "/var/http/widgets/public" user_doc_enable "yes" user_doc_root "public_html" cgi_enable "yes" cgi_dns_enable "yes" cgi_suffix_enable "yes" cgi_user "nobody" log_type "clf" log_prefix "/var/http/logs/widgets" log_max_files 7 log_cycle_time 1440 log_max_file_size 1048576 ssi_enable "yes" ssi_exec "yes" ssi_xbithack "full" map /cgi-bin/ /var/http/widgets/cgi-bin/ cgi map /sws-icons/ /var/http/widgets/sws-icons/ } port 80 { keepalive_enable "yes" request_timeout 180 } port 1880 { ip_address 129.128.127.126 keepalive_enable "yes" request_timeout 180 hosts_supported widgets } |
建立一個新的伺服器以便轉換(以 1.0 的設定值為新伺服器而建立的配置檔案,我們將予以修改):
#htserver add "server1" |
加入一個站台:
# hthost add -i server1 -h widgets \ -s /var/http/server1/websites/widgets |
修改伺服器層級檔案 /etc/http/server1.httpd.conf:
server { server_root "/var/http/server1/" server_user "root" mime_file "/etc/http/mime.types" mime_default_type text/html access_enable "yes" cache_enable "yes" cache_small_file_cache_size 8 cache_large_file_cache_size 256 cache_max_file_size 1 cache_verification_time 10 } url { site_path /var/http/server1/websites/default_site site_config "conf/default_site.site.conf" site_enable "yes" } 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:1880 :80 } port 80 { ip_address 0.0.0.0 keepalive_enable "yes" request_timeout 180 } port 1880 { ip_address 129.128.127.126 keepalive_enable "yes" request_timeout 180 } |
修改 /etc/http/mime.types:
application/java class audio/basic au snd |
修改 /var/http/server1/websites/default_site/conf/default_site.site.conf:
url { doc_root /var/http/demo/public map_file conf/map.conf realm_file conf/realms.conf access_file conf/access.conf content_file conf/content.conf mime_file conf/mime.types user_doc_enable "no" user_doc_root "public_html" cgi_enable "no" cgi_dns_enable "no" cgi_suffix_enable "no" cgi_user "nobody" log_type "elf" log_prefix "/var/http/server1/logs/default" log_max_files 7 log_cycle_time 1440 log_max_file_size 1048576 ssi_enable "no" ssi_exec "no" ssi_xbithack "off" } |
建立 /var/http/server1/websites/default_site/conf/mime.types:
application/x-csh csh application/x-sh sh |
修改 /var/http/server1/websites/default_site/conf/map.conf:
map /cgi-bin/ /var/http/demo/cgi-bin/ cgi map /sws-icons/ /var/http/demo/sws-icons/ |
修改 /var/http/server1/websites/widgets/conf/widgets.site.conf:
url { doc_root /var/http/widgets/public map_file conf/map.conf realm_file conf/realms.conf access_file conf/access.conf content_file conf/content.conf mime_file conf/mime.types user_doc_enable "yes" cgi_enable "yes" cgi_dns_enable "yes" cgi_suffix_enable "yes" cgi_user "nobody" log_type "clf" log_prefix "/var/http/server1/logs/widgets" log_max_files 7 log_cycle_time 1440 log_max_file_size 1048576 ssi_enable "yes" ssi_exec "yes" ssi_xbithack "full" } |
修改 /var/http/server1/websites/widgets/conf/map.conf:
map /cgi-bin/ /var/http/widgets/cgi-bin/ cgi map /sws-icons/ /var/http/widgets/sws-icons/ |
假設以下 Sun WebServer 1.0 /etc/http/access.acl 檔案以及 /var/http/widgets/widgets.acl委託檔案:
/etc/http/access.acl:
url "/sws-administration" { authentication_type md5 realm serverAdmin password_file /etc/http/swsadmin.pw + user * } url "/statistics" { authentication_type basic realm statsRealm password_file /var/http/demo/stats/usrs group_file /var/http/demo/stats/grps + user * } url "//widgets" { delegate /var/http/widgets/widgets.acl } |
/var/http/widgets/widgets.acl:
url "/" { authentication_type basic realm widgetsRealm password_file /var/http/widgets/users group_file /var/http/widgets/groups + user * - user Joe - group thoseDenied } |
建立一個整體serverAdmin
領域(在 /etc/http/realms/ 中),並將其使用者檔案換成 /etc/http/swsadmin.pw
若已經有這個領域,只要執行複製指令即可。
# htrealm add -r serverAdmin -s HTPASSWD # cp /etc/http/swsadmin.pw /etc/http/realms/serverAdmin/users |
建立一個整體 statsRealm
,並以設定於上述 "/statistics" URL 中的檔案取代其 users 與 groups 檔案。將此新的領域加入內定站台以及 widget 的 realms.conf 檔案內:
底下的<hostname> 是指工作站的 主機名稱,用以設定內定站台。
# htrealm add -r statsRealm -s HTPASSWD # cp /var/http/demo/stats/usrs /etc/http/realms/statsRealm/users # cp /var/http/demo/stats/grps /etc/http/realms/statsRealm/groups # htrealm add -i server1 -h widgets -r statsRealm \ -s HTPASSWD -d /etc/http/realms/statsRealm # htrealm add -i server1 -h <主機名稱> -r statsRealm \ -s HTPASSWD -d /etc/http/realms/statsRealm |
在此 widgets 站台建立一個區域 widgets 領域 ,並以上述檔案取代其 users 與 groups 檔案:
# htrealm add -i server1 -h widgets -r widgets領域 -s HTPASSWD # cp /var/http/widgets/users \ var/http/server1/websites/widgets/conf/realms/widgetsRealm/ # cp /var/http/widgets/groups \ /var/http/server1/websites/widgets/conf/realms/widgetsRealm/ |
修改 /etc/http/access.conf:
url /sws-administration { authentication_type md5 realm serverAdmin + user * } |
修改 /var/http/server1/websites/default_site/conf/access.conf:
# Specify /sws-administration ACL here for site administration, # create a siteAdmin realm and add administrators to that realm # url "/sws-administration" { # authentication_type md5 # realm siteAdmin # + user * # } url "/statistics" { authentication_type basic realm statsRealm + user * } |
修改 /var/http/server1/websites/widgets/conf/access.conf:
# Specify /sws-administration ACL here for site administration url "/statistics" { authentication_type basic realm statsRealm + user * } url "/" { authentication_type basic realm widgetsRealm + user * - user Joe - group thoseDenied } |