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 1.0 彻底去除,然后才能安装 Sun WebServer 2.0。只有当 Sun WebServer 1.0 安装在一个非缺省目录(非“/”的目录)下时,它才可以与 Sun WebServer 2.0 共存。有关将 Sun WebServer 1.0 安装到非缺省目录的说明,请查阅“Sun WebServer 1.0 安装指南”。本文档中的示例是指使用其缺省安装位置(httpd.conf 和 access.acl 都位于 /etc/http/)的 Sun WebServer 1.0 配置文件。在去除 Sun WebServer 1.0 软件包(这必须在安装 Sun WebServer 2.0 之前完成)之后,配置文件被移至一个备份目录 /etc/http.bak[.n]/(例如,/etc/http.bak/、/etc/http.bak.1/、/etc/http.bak.2/,...)。最近一次卸载的配置文件将位于具有最高 `n' 值的目录中。
尽管 Sun WebServer 1.0 能够支持同时运行的多个 HTTP 服务器实例,但是,在单一的 HTTP 守护程序实例情况下,启动、停止和重新启动服务器效果最佳。Sun WebServer 2.0 为系统上的每一个 httpd 守护程序提供一个唯一的名称,从而改进了对多实例的支持。通过使用其名称即可启动、停止和重新启动单个的实例。有关详细信息,请参阅 man 页 htserver(1m)。
Sun WebServer 2.0 还扩展了对虚拟主机的支持。现在每一个虚拟主机都与一个 Web 站点相关联,并在文件系统中有其自己的子树,其中含有该主机的配置文件及主机的文档根。Sun WebServer 1.0 将虚拟主机的所有配置信息保存在全局配置文件 httpd.conf 中,而 Sun WebServer 2.0 将大部分这类信息存储在位置相对于 Web 站点根的站点配置文件中。将大部分为站点所特有的配置信息放置在 Web 站点,而不是一个单一的文件中,使 Sun WebServer 2.0 比 Sun WebServer 1.0 具有更好的缩放性,并简化了对单个 Web 站点的管理。
Sun WebServer 1.0 在缺省位置 /etc/http/ 有两个主配置文件:
httpd.conf:服务器及其所有虚拟主机的基本配置信息
access.acl:URL 访问控制设置
Sun WebServer 2.0 将这些文件中的指令划分到用于服务器实例的服务器级配置文件,和用于单个 Web 站点的站点级配置文件中。
服务器级配置文件缺省安装于 /etc/http/。下面的 <instance_name> 是使用此文件的 httpd 实例的唯一名称。当使用“Sun WebServer 管理控制台”或 htserver add 命令创建了一个服务器实例时,便有一个实例名与之相关联。
<instance_name>.httpd.conf:基本服务器配置信息
access.conf:URL 访问控制
realm.conf:领域信息
mime.types:MIME 类型和编码
站点级配置文件缺省安装于 Web 站点子树。下面的 <site_name> 指使用此文件的 Web 站点名称。
<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 man 页。有关本文档所引用的命令的详细信息,请参阅 htserver(1m)、hthost(1m) 和 htrealm(1m) man 页。有关引用的配置文件的详细信息,请参阅 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 服务器级配置文件和一个缺省 Web 站点。新文件的安装位置如下:
/etc/http/server1.httpd.conf:服务器配置文件
/var/http/server1/:新服务器的根
/ver/http/server1/websites/default_site/:缺省的 Web 站点的站点路径
/var/http/server1/websites/default_site/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
指令 在 /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 } |
Sun WebServer 2.0 与 1.0 相比,访问控制已经发生了很大变化。在试图将旧的 Sun WebServer 访问控制结构向新的迁移之前,应该参阅 Sun WebServer 2.0 访问控制文档。下面列出最重要的变更:
领域概念已经被大大地扩展了,并添加了一个新的配置文件 realm.conf。
访问控制代理已经去除。
为 "/sws-administration" URL 指定的访问控制在整个 Sun WebServer 使用。当 URL 在服务器级 access.conf 中指定时,用来确定服务器管理员;当在站点级 access.conf 中指定时,用来确定站点管理员。
对于系统上的所有实例有一个单一的服务器级 access.conf 文件(位于 /etc/http/access.conf)。此文件含有单一 "/sws-administration" URL,用来定义允许谁来管理所有实例。
每一个 Web 站点还有其自己的站点级 access.conf 文件,用来指定站点管理员。
领域现在可以将更多的源用于用户数据。 领域可以依照标准的 HTPASSWD
数据库或 NIS+ 数据库来鉴别用户。
若要将 Sun WebServer 1.0 access.acl 文件迁移到 2.0,需要创建或选择鉴别领域,修改映射的 URL 的访问控制语法以反映新的 2.0 语法,并将 access.acl 文件和被代理文件中的访问控制收集到每个单独的 Web 站点的 access.conf 文件中。
在 Sun WebServer 1.0 中, realm
指令除作为浏览器的标识符(印在鉴别对话框中)外,没有什么重要性。在 Sun WebServer 2.0 中,领域指定了一组预先存在的用户和组用来鉴别对一个 URL 的访问。领域信息存储在 realms.conf 文件中。HTPASSWD
领域也有与它们相关联的一个目录(在 realm.conf 中定义),含有将用于鉴别的“用户”和“组”文件。 Sun WebServer 1.0 ACL 中的 password_file
和 group_file
指令因此已经作废。所有 1.0 领域在 2. 0 中将为 HTPASSWD
领域,因为这些由用户创建的数据库是 1.0 中唯一可用的源。
假定在 /etc/http/access.acl 中有下列 Sun WebServer 1.0 访问控制用于主机 widgets:
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 |
此命令将为站点 widgets 向 realms.conf 添加下列条目:
realm Managers { realm_source HTPASSWD } |
它还在站点 widgets 创建下列目录:
/var/http/server1/websites/widgets/conf/realms/Managers/ |
将用户和组文件复制到 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 指令被忽视,除非它们为转换所明确要求。
假定有下列 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" |
添加一个 Web 站点――widgets:
# 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 中指定的那些文件替换其用户和组文件。将这个新领域添加到缺省站点和 widgets 站点的 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 <hostname> -r statsRealm \ -s HTPASSWD -d /etc/http/realms/statsRealm |
在 widgets 站点创建一个本地 widgetsRealm ,并用上面所指定的文件替换其用户和组文件:
# htrealm add -i server1 -h widgets -r widgetsRealm -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 } |