Web服务器(192.168.10.40)同时提供Web服务和DNS服务。所以这里我们需要安装和配置Apache和Bind。
服务器网络配置
# ee /etc/rc.conf
ifconfig_lnc0="inet 192.168.10.40 netmask 255.255.255.0"
defaultrouter="192.168.10.10"
hostname="web.rd.bj"
# ee /etc/hosts
192.168.10.40 web.rd.bj
配置好网络环境后,我们先来配置DNS服务器。在默认的Freebsd的安装过程中已经安装好了Bind,我们现在只需修改配置文件即可。
我们现在先虚拟一个域名:rd.bj来作为整个测试环境的根域名。
# cd cd /etc/namedb/
# ee named.conf
在listen-on中增加监听IP:192.168.10.40
listen-on { 127.0.0.1; 192.168.10.40; };
然后在最后加入:
zone "rd.bj" {
type master;
file "master/rd.bj";
};
zone "10.168.192.in-addr.arpa" {
type master;
file "master/10.168.192.in-addr.arpa";
};
正解档的设置
# eemaster/rd.bj
加入:
$TTL 172800
@ IN SOA rd.bj. root.rd.bj. (
2005100301 ; Serial
172800 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS rd.bj.
IN A 192.168.10.40
web IN A 192.168.10.40
squid01 IN A 192.168.10.30
squid02 IN A 192.168.10.31
proxy IN A 192.168.10.20
www IN A 192.168.10.20
开头的 @ 代表网域名称 rd.bj,IN 表示为 internet 的数据型态。
SOA 后面接的是rd.bj,表示这台rd.bj机器是rd.bj网域中的主要名称服务器。而root.rd.bj表示管理者的Email 是 root@rd.bj。
正解档中的内容中除了第一行外,每一行的格式为 [name] [ttl] [class] [type] [data]。以下是每个字段的说明:
name:可以是网域名称或是主机名称,如果不写的话表示与上一个设定相同。
ttl:是数据要存活的时间 (time to live),也就是 cache server 将保留在它的 cache 中的时间。如果不写的话表示和 SOA 中的设定相同。
class:指定网络的类型,这个字段应该都是使用 IN 代表 internet。
type:设定该笔数据的型态,例如:MX, A, CNAME, PTR, NS 等。
data:就是实际设定数据的部份。
Serial:这个设定的版本,这次修改的数字必须比上次的数字大,也就是每次修改这个档时,都要将这个数字提高,这样别的服务器才会将数据更新。一般而言,我们会以日期加上几位的数字来表示,如 2004040301 表示 2004 年 4 月 3 日的第一次设定。
Refresh:这个数字是次要名称服务器要多久和主要名称服务器比对数据并更新。
Retry:如果比对失败,要在几秒后再向主要名称服务器查询。
Expire:表示如果次要名称服务器一直连不上主要名称服务器,这笔数据要多久无法比对便失效。这个字段一样是以秒计算。
Minimum:表示别的快取服务器可以将你的设定存放多久。
反解档的设置
# ee master/10.168.192.in-addr.arpa
加入:
$TTL 172800
@ IN SOA rd.bj. root.rd.bj. (
2001080301 ; Serial
172800 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS rd.bj.
40 IN PTR rd.bj.
40 IN PTR web.rd.bj.
30 IN PTR squid01.rd.bj.
31 IN PTR squid02.rd.bj.
20 IN PTR proxy.rd.bj
20 IN PTR www.rd.bj
当我们设置好正解档和反解档后,我们执行一下命令产生一个localhost的反解档:
# cd /etc/namedb
# sh make-localhost
最后再修改文件/etc/resolv.conf
# ee /etc/resolv.conf
设置成:
nameserver 127.0.0.1
这样就可以让此台服务器成为这个网域中第一台DNS服务器。
现在我们就配置好了我们的DNS服务器,启动她吧!!!
# /etc/rc.d/named start
我们可以使用下面的指令查询信息:
# tail /var/log/messages
查看到没有错误信息后,我们使用nslookup命令来验证一下我们的设置。
# nslookup web.rd.bj
这里有个情况要提醒一下大家,由于我们现在squid01,squid02和proxy三台服务器还没有配置,所以在这里测试可能会出一下状况,所以我们可以再把其他3台服务器设置好了以后,再一起测试测试完成以后(只要是messages文件中没有关于DNS的错误信息,我们这里就先假定我们的配置是正确的),然后我们来设置开机启动DNS服务。
# ee /etc/rc.conf
加入:
named_enable="YES"
下班了, 回家接着写吧!!! 万恶的北京交通 ... 嘟嘟嘟 ... 堵堵堵
好,我们接着干吧!
我们现在开始安装Apache服务器,先找找whereis
# whereis apache22
apache22: /usr/ports/www/apache22
Lets go ,找她去 ...
# cd /usr/ports/www/apache22
# make config #配置安装选项
大家可以根据实际用途进行选择安装,因为我这里建立的是一个实验环境,我把能装上的都装上,目的是以后可以把个个模块都配置看看效果,在这里先预先都装好, 以备不时之需。
如果大家想把Apache以worker模式运行,则需要修改Makefile文件。
# ee Makefile
将WITH_MPM?= prefork # or worker, event, itk改成:
WITH_MPM?= worker # or worker, event, itk
# make install clean
OK,耐心等待,讲个笑话,大家轻松一下吧!
一日,老师上机实践课时出了一道题让大家用C编程。其最后结果要和他的答案一致。
全班同学在规定时间无解,又近午饭,众人更是头昏眼花。忽一同学叫老师,声他成了。
老师前去一看,答案果同。就放其出去。
众同学暗想,该人水平一般,何故今日高水平发挥。于是找其源程序一看。
只有一句“printf("XXXXX");”
众人大哗。
漫长的等待,终于安装完成了。
# rehash
# pkg_info | grep apache
apache-worker-2.2.6_3 Version 2.2 of Apache web server with worker MPM.
# apachectl -l
Compiled in modules:
core.c
worker.c
http_core.c
mod_so.c
现在我们对Apache进行简单的配置,对Apache进行更深入的调优,我们在这里暂且不做讨论,等我们的实验环境都搭建好了后, 大家可以根据自己的业务需求进行调整。
# cd /usr/local/etc/apache22
# ee httpd.conf
更改以下参数:
Listen 192.168.10.40:80
ServerAdmin admin@rd.bj
ServerName web.rd.bj:80
其他都不变,保