Linux 版 (精华区)
发信人: netiscpu (说不如做), 信区: Unix
标 题: 【WWW Server安装简介 UNIX篇】
发信站: 紫 丁 香 (Sat May 23 19:51:17 1998), 转信
发信人: Alex (阿飞), 信区: WWW
标 题: 【WWW Server安装简介 UNIX篇】
日 期: Mon Jan 22 19:19:31 1996
文件版本:VERSION 1.01 DATE: 1995/03/27
【WWW SERVER安装简介--UNIX篇】
本文将介绍UNIX SERVER 的安装。UNIX环境的SERVER,较常见的是CERN与NCSA的程
式。不过,由於後者曾发现在系统安全上有点问题(会被人侵入系统),而目前还没有
正式的补救版,所以笔者只打算介绍CERN的SERVER的安装。
这两种软体安装上都有个共同点,就是「简单」。说不定你甚至会觉得太简单了,
没有「挑战性」,不过,安啦!架设 SERVER 只是旁枝末节的东东,没甚麽大不了的小
方法。 真正有挑战性的, 真正要注意的,其实应该是 SERVER 本身的所提供的资讯,
SERVER 中资讯的整合整理,SERVER 的内容。笔者在这里所作的,就只是把一些看起来
很了不起,其实没甚麽的小方法整理出来,让大家不须花那种不必要的时间於这种小节
上,而可以把心思用在SERVER的充实。:)
◇妖怪(Daemon)的诞生
UNIX 软体的安装往往要多一道自己编译程式的过程, CERN 的架设也是要经过自
行作编译程式的过程。有些软体的编译颇麻烦,要注意许多东东,不过令人愉快的是:
CERN 的编译非常简单。
CERN的软体的取得,可以抓:
ftp://ftp.nccu.edu.tw/pub/www/server/unix/cern_3.0.tar.gz
这个档是 CERN 的程式码、函式库和文件档的集合档。如果有须要,也可以抓同一
个目录下的各别档案(请参考该目录下00-INDEX档)。
抓回本软体之後,用gzip解了再tar 开。tar 开後会建立一"WWW"的目录。目录中有
一httpd_docs的目录,存放html格式的相关文件档,大家可以参考一下。
进行compile 的步骤其实非常的简单,只要下指令:
% ./BUILD
由於CERN提供了"BUILD" 这样的自动侦测的程式,所以下完了BUILD 的命令之後,就
可以泡杯茶到一边凉快,等系统自己compile 完了再回来:)
如果编译过程没有问题(一般应该不会有问题,笔者曾在SunOS 4.1.x, Solaris 2.x
AIX 3.2.5.1 的机器上就如此成功的编译过),那麽将在~/WWW/Daemon/下产生一与机器.
名字的目录,例如AIX 的机器叫"rs6000",Sun 4.1.X 的机器叫Sun4等等。该目录下有许.
编译後的东东,不过最主要的,是叫httpd 的东东(其实这是个symbolic link 的档案).
这个就是所谓CERN的DAEMON了。(还有作map 用的htimage 和作执行用的cgi*。不过本文.
作这两类功能的介绍。)
◇设定档说明
是不是很简单的就完成编译呢?要架一个SERVER,单单只有编译好的DAEMON是不够的
,最重要的,得要有作控制的设定档(configure file)。如果要从无到有的编写设定档
将是件可怕又讨厌的事,幸亏,可爱的CERN随软体提供了数个可供参考的设定档,这些设
定档就摆在~/WWW/server_root/config 之下。大家可以挑一个较合适自己的档来修改、
合并。以下笔者把较基本的options 稍作说明,大家凑合著看。当然,最好能够把与本软
体同目录的cern_httpd_guide.ps.gz抓回去研究,因为笔者所谓的「基本」的option只不
过是要求让一台SERVER跑得起来的最少option。
为了方便大家在设定档上的挑选,下面稍微简介各个档案的主要作用:
httpd.conf: 是个普通的设定档,作一般用途用的。
prot.conf : 有限制设定的设定档。笔者对这东东没有介绍的兴趣,因为个人认为这
类services就是开放给大众使用,除非有特殊须求,否则一般应该没有
要设限的必要。我这东东是写作一般用途,如果有特殊须求者,自己阅
读一下document 就可以轻易的办到了:)
proxy.conf: 没有cache 的proxy 设定
caching.conf: 有cache 的proxy 设定。
这两个档都提供"proxy" ,这是甚麽东东呢?原来这东东是firewall的
东东(好像越释解越多不懂的东东了:) 。简单来讲,firewall是一个网
路,它没有直接与外界沟通,而是先连接到某一个主机,然後再由那台
主机与外界交流。
一台有proxy 设定的server(就叫proxy server),如果client端(如一
般的browser: netscape, mosaic....)把proxy server设成它,那麽,
client 端所发出的要求就会先送到这一台server,然後再由这台serve.
把要求送出去。所以,这对有firewall的网路是很重要的,因为这样子
在firewall的世界才能运作。
可是,对一般没有设firewall的网路,设定proxy 也是颇有用的,不过
这个前提是要配合cache 。如果一台proxy cache server(嗯,就是有□
proxy, 有设cache的server) ,当client 端发出要求时,那我们知道□
於proxy ,所以client端的要求会先送到这台server。而所谓的cache
,我们简单的把它想像成:以前所抓过的资料,都在server的hardisk□
存留一份。所以当server收到client端的要求,那就不急著往外把这个
要求送出去,而是先在hardisk 中找一找,找看有没有人曾经作过同样
的要求,hardisk中有没有所要求的资料?有的话,就直接从server把□
料送给client 端;没有的话,那才到外面,忍受龟速,含辛茹苦的把□
料抓回来,自己存一份,给client一份。 (如下图所示)
┌———┐ Request ┌———┐ 无cache资料
│client│—————→ │server│ —————→外界
└———┘←有cache资料 └———┘ │
↑ ↑ │
└———————————┴—————————┘
所以,对一般使用者而言,如果把proxy cache server设在local 的网
路的话,那只要server中有资料,就可以用local 的速度抓remote的资
料。这对国内国外的网路而言,都会是件可以有效减少不必要的负荷的
设定:)。所以,只要是硬碟空间允许的话,请优先考虑proxy cache 的
功能。
◇基本option
再一次强调,这里所介绍的,只是基本的option,只是让一台server能动的option,
如果可以的话,最好能读一读前面提到的文件,那有较「高段」的option。
△阳春SERVER的设定
1.ServerRoot /where/ever/server_root
主要与用WWW BROWSER 抓取到目录时,将要显示的icons的目录有关。
如果设定:
ServerRoot /home/www
则default会抓/home/www下的叫"icons"这个目录的*.xbm档当显示图形.
2.Port xxxx 设定要让Daemon在那一个port上跑。如果有root的权限,一般人都设成
Port 80
如果作测试用,可以用其他的port,如: 8080, 8001等。
3.UserId与GroupId
设定所跑的daemon是以那一个user和group 在运作。如果daemon不是由
root在跑,那当然没有作用。例:
UserId nobody
GroupId nogroup
4.Welcome file1.html
笔者认为,这是相当应该一提的option。这个option的default值有三□
Welcome Welcome.html
Welcome welcome.html
Welcome index.html
大家平常在玩WWW 时,应该会发现,我们输入一个http的URL 时,一般
上很少有输入档名的,例如:http://www.nccu.edu.tw/
^^^没有档名
其实,这就是这个option的贡献。如果希望别人一连上我们的server就
default 读取某个档,那麽,我们可能可以:
1.把这个档的档名改名字,改成上述三个之一。
2.假设该档叫"hup.html"(有人会这麽叫吗?:)
在设定档中加入一行:Welcome hup.html
5. Pass /* /local/Web/*
Pass是一个多功能的option。
上面用法是其中的一个必要的设定。在设定data的root。
如上是在说,在使用者的URL 搜寻开的root,是在我们server的
/local/Web开始搜寻。所以,在/local/Web目录之前的资料是找
不到的,之後的才能被接触到。
不过,这个说法并不完全正确,因为如果有抓使用者的资料(即~user)
,那根目录是使用者下的特定目录(这个下面会说明),而不是受这个
Pass的限制。
6. UserDir www
如果有使用者要自己建个home page,要处理自己的资讯,那他是否
要另外架台server呢?
当然不是,因为架server是会要占用系统不必要浪费的资源的(如硬碟
空间、daemon所占的记忆体等),而且会因此影响server的
performance。
有了这一个option,那麽使用者可以很愉快的在自己帐号下,「轻轻」
的建个由UserDir 所指定的目录,如上面的目录是:www ,例如:hup
这个user愿意把资料分享出去,那hup 可以建个~/www 的目录,把资
料摆进去就可以了(复习一下,那home page名要叫甚麽呢?不知道吗?
就看Welcome 怎麽设罗!)。
有一点要注意的是:目录的mode是要UserID的那个user可以读与执行的
7. ServerType Inetd 或
ServerType Standalone
让Daemon以怎麽样的方式执行就是这个option设定。
Standalone是表示,直接执行httpd 这个程式,让这个程式直接
Listen某一个Port。这一种方法的好处是:快。由於这个种式自己直接
的处理自己所要的要求,一收到要求,由於已经在记忆体中了,所以,
可以直接处理。不过,缺点也不见没有,很明显的,就是占用记忆体。
另一方面,在某些机器、系统,也可能发生Daemon死去的问题。所以,
要用Standalone的方式执行的话,那先评估一下自己配备的情形。
Inetd 是另一种可以考虑的方法。不过,这稍微要改多一些东东。
简单来讲,inetd 是个超级的daemon,它所作的事情,就只是负责处理
与我们机器连接的要求。如果是它所负责的服务,那inetd 会执行该服
务真正运作的daemon。
这种方式执行httpd 的优点是:节省记忆体,而且,只要inetd 不死,
那麽各个服务都能愉快的进行。不过,缺点是:比较慢,因此inetd 还
要把负责该服务的daemon(如httpd) 执行起来才行。
方法是:
a.在/etc/services 中加入这麽一行:
http 80/tcp www
表示port 80 是叫"http"的服务,而且这个服务又叫"www"
如果services有上yp,请重作yp,如:cd /var/yp; make
b.在/etc/inetd.conf中加入这麽一行:
http stream tcp nowait nobody /usr/local/bin/httpd httpd
^^^1. ^^^^2. ^^^^^^^^^^^^^^^^^^^3.
1.在services所注册的名字。
2.用甚麽使用者在跑httpd
3.httpd
的所在,如我把它摆在/usr/local/bin/httpd
c.kill -HUP <PID-OF-INETD>
好了,讲到这里,这种接近阳春型的server应该可以跑了:)
不过,前面笔者说过,如果硬碟允许的话,希望大家都能够装proxy cache。下面笔者再□
绍如果要设proxy cache server,那麽应该再增加那些设定。
△proxy cache server的设定
1.Caching on 这应该不用解释吧!?
2.CacheRoot /my/cache/dir
我们要把资料Cache 在那里。这个目录必须是httpd 的running ID所能
写的。有设这东东就会把Caching 的default设on。
3.CacheSize xx M
设多大的Cache ,如"CacheSize 200 M"
4.NoCaching protocol://some.hosts//*
protocol可能是http, gopher, ftp, wais, news等。
这是设定那些地方的资料不作cache ,例如我们设定"*.tw"(国内)的
就不作cache :
NoCaching http://*.tw/*
NoCaching http://140.*/*
而
NoCaching ftp://140.119.*/* <--不把140.119.*的ftp
资料作cache
*.xx.yy是表示以.xx.yy结尾的机器hostname。
123.456.*是表示以123.456.开头的ip。
这个option用在抓取与我们连接速率快的机器颇有用的。由於对方与
我们连接速率快,所以就不必在我们机器上留份资料了,以免浪费空
间:)。
5.CacheClean protocol:* how-long
设定我们Cache 的资料最久能存多久。例如:
CacheClean http:* 1 month <--http的资料最长存一个月
CacheClean ftp:* 14 days <--ftp 的资料14天後就清掉
CacheClean gopher:* 5 days 12 hours <--gopher资料用5天半
6.CacheUnused * 4 days 12 hours
CacheUnused http://some.server/* 7 days
CacheUnused ftp://some.hosts/* 14 days
三个取自document的例子。这个设定是设多久没用的档案就清掉。
7.CacheLimit_1 200 K
CacheLimit_2 4000 K
上面是这两个options 的default值。
CacheLimit_1是设定最小要多少我们的系统才作cache ,预设值是200 .
CacheLimit_1是设定最大只cache 到多大的档案,预设值是4 MB。
所以小於200K或大过4MB 的资料是不作cache 的。
我们可以改这预设值。例如我想把所有的资料都cache :
CacheLimit_1 0 K
CacheLimit_2 40000 K
(再小我也cache ,40MB以内的我也照收)
8.Pass http:*
Pass ftp:*
Pass gopher:*
设定那些protocol的资料要作proxy 。如果只设:
Pass http:*
那麽就只有http的资料会作proxy 。所以要作proxy cache的protocol□
请都Pass过去:)
◇结论
这也不算甚麽结不结论的,只是,写到最後,总是令人快乐的一件事:)。
www server架设的介绍就介绍到这里。希望大家能够同意架设一台www server真的是
件小case,打个哈欠就架好了:)。
=============================================================================
作者:陈彩合 (♂) Email: hup@cc.nccu.edu.tw
日期:1995/03/27 version 1.01
┌本文版权所有,但是允许复制。不过,未经许可,严格禁止任何商业使用┐
│(例如:HopeNet),否则必定追究。 │
│Copyright (c) 1995 Chai-Hup Tan, all right reserved. │
└ ┘
=============================================================================
--
7m0m┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 2m 飞的感觉真好! @#$%! 7m 阿飞 ( Alex ) ┃
┠───────────────────────────────┨
┃ 6m 信则: 热爱生活/热爱自由/热爱每一个人! 7m ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
7;40m0m
--
Enjoy Linux!
-----It's FREE!-----
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:207.747毫秒