2006年9月23日星期六

第二节 主页空间管理

  Apache 很吸引人的一点就是它可以对主页空间进行灵活而有效的管理。不仅可以为系统中的第个用户提供自己的主页空间,还可以利用 Apache 的虚拟主机功能在同一台机器是架设多个网站。如果不希望所有的用户都能够访问 WWW 服务器时,Apache 的授权访问机制又为此提供了一个很好的解决方案。
 
1、开辟个人主页空间

 
  经常能看到某些商业网站为自己的注册用户提供个人主页服务,使用 Apache来实现这一功能并不困难。打开浏览器并登录 Webmin 后,单击『服务』图标进入服务管理页面,然后单击『Apache 服务器』图标进入『Apache WEB 服务器』页面,接着再『虚拟服务器』区域中单击『缺省服务』图标,进入『虚拟服务器选项』页面,如图 6-2-1 所示。

 
图 6-2-1 管理缺省服务
 
  现在单击『文档选项』按钮,进入该页面,在『用户WWW目录』中指定用户在自己的主目录(HOME)中存放 HTML 文件的目录,如图 6-2-2 所示。
 
图 6-2-2 用户文档根目录
 
  默认情况下,Apache 会为系统中的所有用户提供个人主页空间。如果你不想为某些用户提供个人主页空间,或者只希望某些特定的用户才能拥有个人主页空间,可以在『用户WWW目录』区域中分别选中『所有用户除了』或『Only users』单选框,然后单击随后的『...』按钮,打开『选择用户』窗口选择允许和拒绝拥有个人主页空间的用户,如图 6-2-3 所示。

 
图 6-2-3 只为特定的用户开辟个人主页
 
  这样,拥有个人主页空间的用户就可以在自己主目录(HOME)下的 public_html目录中,存放自己的 HTML 文件。作为管理员,可以事先为用户创建此目录,供他们今后旋转网页用。下面的命令可以为用户 kevin 创建这一目录,请注意为该目录赋予的权限:

 
  [root@kevin ~]#cd /home/
  [root@kevin home]#chmod 705 kevin (# 允许其它用户浏览)
  [root@kevin home]#cd kevin
  [root@kevin kevin]#mkdir public_html (# 用户文档根目录)
  [root@kevin kevin]#chmod 705 public_html (# 允许其它用户浏览)
  [root@kevin kevin]#chown kevin:kevin public_html

 
  如果需要为系统中的多个用户提供个人主页空间,可以在 /etc/skel/ 目录下建立一个 public_html 目录,这样在创建新用户时,其主目录下会自动生成一个名为 public_html 的目录。

 
  此后,用户 kevin 就可以在自己主目录下的 public_html 目录中,编写自己个人网站的 index.html 文件了,以下是 index.html 文件的代码:

 





Welcome to Gary's homepage!




 
  赶紧来测试一下吧。不过,测试在 www.mylinux.org 主机上 kevin 用户的个人主页,你需要在浏览器地址栏中输入 http://www.mylinux.org/~kevin/,如图6-2-4 所示。

 
图 6-2-4 测试个人主页
 
  如果 WWW 服务器的IP地址是动态分配的,可能不能从其它计算机上正确地访问到个人主页,此时只能在本机中使用 http://127.0.0.1/~kevin/ 或http://localhost/~kevin/ 的方式来进行测试。

 
  在设置个人主页时,关键是要允许其他用户有权浏览自己的主目录(HOME),同时在主目录下创建的 public_html 目录也要设置正确的权限,只有这样才能在浏览器中正确访问个人网站。如果不想将自己主目录下的其它目录暴露给别人,那就请将除 public_html 外的其它目录的访问权限都设置成700吧。

 
2、基于 IP 的虚拟主机

 
  虚拟主机(Virtual Host)指的是在一台 WWW 服务器上,将一台计算机虚拟成多个 WWW 服务器,同时为多个域名提供服务。

 
  举个例子,假设网络中一台 IP 地址为 218.168.100.2 的主机上安装了Apache 服务器,现在已经可以通过 http://www.mylinux.org 来访问这个网站。如果还想架设 www2.mylinux.org 和 www3.mylinux.org 两个网站,为了节省开支又不希望额外添置两台机器,就可以考虑把 www.mylinux.org、www2.mylinux.org 和www3.mylinux.org 三个网站都放到IP地址为 218.168.100.2 的主机上。

 
  其实实现的方法也很简单,那就是利用 Apache 的虚拟主机功能。

 
  对 ISP 来讲,虚拟主机绝对是一个节省费用的好办法。目前许多小企业由于种种条件的限制,通常是自用 ISP 维护的服务器来开发自己的网站。如果访问量不是很大,ISP 完全没有必要为每个客户提供一台单独的服务器,可以借助虚拟主机的功能,使 Apache 服务器为多个域名提供 WWW 服务,不同域名相互各不干扰,而对外则表现为多个不同的 WWW 服务器。

 
  Apache 提供了多种建立虚拟主机的方法,在 HTTP 协议的 1.0 及其以下版本中,各个虚拟主机必须使用不同的 IP 地址,这就是基于 IP 的虚拟主机的方式。建立基于 IP 的虚拟主机需要为每个虚拟主机配置不同的 IP 地址。一般是通过安装多块网卡,并为每块网卡分配一个 IP 地址来实现,但如果只有一块网卡呢?

 
  当然没有问题了,那就是使用 Linux 内核提供的 IP 别名功能。

 
  打开浏览器并登录 Webmin 后,单击『网络』图标进入网络管理页面,然后单击『网络配置』图标,在随后打开的『网络配置』页面中,可以对网卡进行配置。

 
  单击『网络接口』图标,进入『网络接口』页面。在『接口当前活动』区域中你可以看到所有当前活动的网络接口设置,而在『启动时启用接口』区域中则可以看到在系统启动时激活的所有网络接口设置。为 eth0 接口分配了 IP 地址218.168.100.2,现在看看如何将别名 218.168.100.12 分配给它,使得通过 IP 地址 218.168.100.2 和 218.168.100.12 都可以进行访问。

 
  在『启动时启动接口』区域中单击『eth0』链接,进入『编辑引导时接口』页面,『在虚拟接口』区域中可以为该网卡添加新的虚拟接口。通过添加虚拟接口,可以给虚拟接口分配其它 IP 地址。

 
  单击『增加虚拟接口』链接,进入『创建引导时接口』页面。首先在『名称』后面的文本框中输入虚拟接口的名称“0”,然后在『IP地址』文本框中输入要分配给该虚拟接口的IP地址“218.168.100.2”,『子网掩码』和『广播地址』当然必须得填了,最后单击『Create and Apply』按钮,新的虚拟网络接口就创建好了。

 
  返回到『网络接口』页面后,就可以在『接口当前活动』和『启动时启用接口』区域中找到新创建的虚拟接口。

 
  接下去就该为 IP 地址 218.168.100.12 分配域名 www2.mylinux.org。首先进入 Webmin『服务』管理页面,然后单击『BIND & DNS服务器』图标,在随后打开的『BIND & DNS服务器』页面中的『现有DNS区域』中找到 mylinux.org 域。

 
  单击『mylinux.org』图标,进入『编辑主区域』页面,此时的目标是要为 IP地址 218.168.100.12 添加一条地址记录(A)。

 
  单击『地址』图标,进入『地址记录』页面。在『增加地址记录』区域中的『名称』文本框中输入域名“WWW2”,并在『地址』文本框中输入 IP 地址“218.168.100.12”,然后单击『新建』按钮创建地址记录。

 
  创建好地址记录后,单击『地址记录』页面底部的『回到区域列表』链接,返回到『BIND & DNS服务器』页面。然后再单击『应用更改』按钮,重新加载 DNS 服务器,使新的设置生效。

 
  准备工作已经完成,现在可以设置 Apache 的虚拟主机了。Webmin 的『服务』→『Apache服务器』进入『Apache WEB 服务器』页面。在『创建新虚拟服务器』区域中的『地址』文本框中输入虚拟主机的 IP 地址“218.168.100.12”,并在『根文件』文件框中输入该网站的文档根目录“/var/www2/html”(该目录应该事先手工创建),而『服务器名称』文本框中则应输入虚拟主机的域名“www2.mylinux.org”,同时注意不要选择『增加名称虚拟服务器地址』复选框。最后,单击『新建』按钮创建该虚拟主机。

 
  虚拟主机成功创建后,在『Apache WEB 服务器』页面中的『虚拟服务器』区域中,可以找到新创建的虚拟主机所对应的图标,单击该图标可以进入『虚拟服务器』页面。如果已经熟悉了缺省服务器的配置,相信此时就难不倒你了。

 
  单击『联网和地址』图标,进入『联网和地址』页面,在『服务器管理员电子邮件地址』区域中,可以指定该网站管理员的 E-mail 地址。每个虚拟主机都可以单独拥有自己的管理员,设置好 E-mail 地址后,单击『保存』按钮即可。

 
  重新启动 Apache 服务器,然后在 /var/www2/html/ 目录下创建该网站的index.html 文件,index.html 文件代码如下:

 





Welcom to WWW2 site!




 
  现在就可以在浏览器中测试了。

 
3、基于域名的虚拟主机
 
  在采用基于 IP 地址的虚拟主机方式时有一个很明显的不足,那就是能够使用的 IP 地址有限,或者换句话说能够支持的虚拟主机数量有限。HTTP 协议的 1.1版本改进了这一缺点,可以用域名来区分各个虚拟站点,而不用为它们各自分配一个 IP 地址。使用同一个 IP 地址。可以建立多个虚拟站点,大大提高了 Apache服务器可以支持的虚拟主机数量,这就是基于域名的虚拟主机方式。

 
  在使用虚拟主机时,第一步仍是配置 DNS 服务器。假设要在 IP 地址为218.168.100.2 的机器上创建 www3.mylinux.org 这一虚拟主机。根据当前的 DNS配置,218.168.100.2 对应的域名是 www.mylinux.org,因此第一步工作是为 IP地址 218.168.100.2 分配新的域名 www3.mylinux.org。至于俱体的做法,还记得DNS 的别名记录(CN)吗?

 
  单击 Webmin 中的『服务』图标,进入服务管理页面,然后单击『BIND & DNS服务器』图标进入『BIND DNS服务器』页面,在现有 DNS 区域中找到mylinux.org,如图 6-2-5 所示。

 
图 6-2-5 管理 mylinux.org 域
 
  单击『mylinux.org』图标,进入『编辑主区域』页面,现在的目标是要为域名
www.mylinux.org 添加一个别名记录(CN),如图 6-2-6 所示。
 
图 6-2-6 别名记录
 
  单击『名称别名』图标,进入『名称别名』页面。在『增加名称别名记录』区域中的『名称』文本框中输入“WWW3”,并在『真名』文本框中输入真实的域名“WWW”,接着单击『新建』按钮创建别名记录,如图 6-2-7 所示。

 
图 6-2-7 新建别名记录
 
  创建好别名记录后,单击『名称别名记录』页面中的『当前模块首页』链接,返回到『BIND DNS服务器』页面,接着再单击页面底部的『应用更改』按钮,按照新的设置值重新启动 DNS 服务器,如图 6-2-8 所示。

 
图 6-2-8 重启 DNS 服务器
 
  现在可以在 Apache 服务器中创建虚拟主机了。首先单击 Webmin 的『服务』图标,进入服务管理页面,然后单击『Apache服务器』图标进入『Apache WEB 服务器』页面。在『创建新虚拟服务器』区域中的『地址』文本框中输入主机的 IP 址“218.168.100.2”,并在『根文件』文本框中输入该网站的文档根目录“/var/www3/html”,而『服务器名称』文本框中则应输入虚拟主机的域名“www3.mylinux.org”。在创建基于域名的虚拟主机时,关键是要将『增加名称虚拟服务器地址』复选框选中,如图 6-2-9 所示。这些参数都设置好后,单击『新建』按钮创建虚拟主机。

 
图 6-2-9 创建虚拟主机
 
  基于域名的虚拟主机成功创建之后,同样可能在『Apache WEB 服务器』页面的『虚拟服务器』区域中,找到新创建的虚拟主机所对应的图标。单击该图标后可以进入『虚拟服务器』页面,此时就可以用和缺省服务器相同的方法来对该虚拟服务器进行配置了。

 
  重新启动 Apache 服务器,然后在该网站的文档根目录 /var/www3/html/ 下建立 index.html 文件,index.html 代码如下:

 





Welcom to WWW3 site!




 
  大功告成,接着就可以在浏览器中测试一下了。

 
  成功后,再测试一下 www.mylinux.org。咦,显示的是 www3.mylinux.org 网站的首页,怎么搞的?不要着急,只要为 www.mylinux.org 创建一个虚拟主机就可以解决这个问题了。按照前面介绍的方法进入『Apache WEB 服务器』页面,然后在『创建新虚拟服务器』区域中的『地址』文本框中输入主机的IP地址“218.168.100.2”,并在『根文件』文本框中输入网站的文档根目录“/var/www/html”,至于『服务名称』文本框,当然是输入『服务器名称』文本框,当然是输入“www.mylinux.org”了。最后,单击『新建』按钮创建该虚拟主机。

 
  现在重新启动 Apache 服务器,然后再在浏览器中测试一下。

没有评论: