Linux下WWW服務(wù)器配置全攻略(luè)
Linux操作(zuò)係統近幾年有了蓬勃的發展,在整個(gè)世界(jiè)範(fàn)圍(wéi)內得到了越來越多公司和(hé)團體的支持(chí),尤其是最近(jìn)IBM公(gōng)司的鼎力支持,更是使Linux服務器如虎添翼(yì),更上(shàng)一層(céng)樓。而在國內,Linux的應用也是方興未艾,眾多公司已經投入(rù)到Linux係統的研發和(hé)推廣工作中。一些優秀的Linux操作係統相繼出現,比(bǐ)如紅旗Linux等。但是我國(guó)的Linux應用水(shuǐ)平還很低,熟悉Linux的人員嚴重(chóng)缺乏,Linux專業(yè)人才的缺(quē)乏已成為(wéi)Linux在國內應用和(hé)普及的瓶(píng)頸問題。據《開(kāi)放係統世(shì)界》2003年第八期介紹,中(zhōng)國五年內Linux人才(cái)需求量將會超過120萬。而“1+1+1”工程的實施,也是間(jiān)接地告(gào)訴我(wǒ)們這(zhè)個問題的嚴重(chóng)性。如此大好時機(jī),我們幹嗎還愣著(zhe)不(bú)動呢(ne)!如(rú)果你是(shì)一位Linux愛好(hǎo)者,你(nǐ)可能已經掌握了基本的Linux的知識與操作,毫無疑問,你並不會(huì)去(qù)滿(mǎn)足這樣小小的成就。Linux為何如(rú)此的流行?其最大的(de)特點莫過於功能強大,性(xìng)能穩定(dìng)的服務器(qì)應用了。像WWW,MAIL,FTP,DNS和SMB等。在這篇文章中,我將以Redhat Linux 9為藍本,從Web服務器的(de)一(yī)些最基(jī)本的操作入手,從初(chū)學者使用的態度,讓讀(dú)者(zhě)正(zhèng)確充分的認識Apache。好,現(xiàn)在(zài)就讓我們一起(qǐ)踏上征服(fú)Apache的(de)自(zì)由(yóu)之路吧。
第一站 Apache的曆(lì)史與前景
1995年,美國國家計算機安全協會(NCSA)的開發者創建了NCSZ全(quán)球網絡服務軟件,其最大的(de)特點(diǎn)是HTTP精(jīng)靈程(chéng)序,它比(bǐ)當時的CERN服務器更容易(yì)由源碼來配置(zhì)和(hé)創建,又(yòu)由於當時(shí)其他服務器(qì)軟件(jiàn)的缺乏(fá),他(tā)很快流行起(qǐ)來(lái)。但是(shì)後來,該服務器(qì)的核心開發人員(yuán)幾乎都離(lí)開了NCSA,一些使用者們自己成立了一(yī)個組織來管理他(tā)們編寫的補丁(dīng),於是Apache Group應運(yùn)而生。他們把該服務(wù)器軟件稱為Apache。Apache源(yuán)於A patchy server的讀音,意思是(shì)充滿補丁(dīng)的服務器。如今Apache慢慢地已經成(chéng)為Internet上最(zuì)流(liú)行的Web服務器軟件了。在所(suǒ)有的Web服務器軟件中,Apache占(zhàn)據絕對優勢,遠遠領先排名第(dì)二的Microsoft IIS。如果你對它感興趣,你可以(yǐ)訪問Apache的官方網站:http://www.apache.org。Apache作(zuò)為自由軟件之一,像其他自由軟件一樣,他們都(dōu)是由許許多多的自由開發人員投入了大(dà)量的時間和精力來實(shí)現並(bìng)逐步完善的,所以我們有理由相(xiàng)信Apache的發展前景會更好。
第二站 Apache 2.0的安裝(zhuāng)
Apache 2.0的配置與安裝和Apache 1.3的(de)有很大的不同,他(tā)像其它的開源軟件一樣,使用(yòng)libtool和autoconf來配置環境。但不管是(shì)Apache幾通(tōng)常都有兩種安裝(zhuāng)方式:源(yuán)代碼(mǎ)安裝和RPM包(bāo)安裝(zhuāng)。這兩種安裝類型各有特(tè)色,RPM包安裝不需(xū)要編(biān)譯,而源代(dài)碼(mǎ)安裝則需(xū)要先配置(zhì)編譯再安(ān)裝(zhuāng),RPM包安裝在一個固定的位置(zhì)下,選擇(zé)固定的模塊,而源代碼安裝(zhuāng)則可以(yǐ)讓(ràng)你選擇安(ān)裝路徑(jìng),選擇(zé)你想(xiǎng)要的模(mó)塊。下麵分別以實例的形式來介(jiè)紹(shào)兩種(zhǒng)類型的安裝(zhuāng)方法。
一,使用源代碼安裝
(1) 獲得源代碼
# lynx http://www.apache.org/dist/httpd/httpd-2_0_NN.tar.gz
NN表示當前所用(yòng)的版本(běn)號。
(2) 解壓縮
# gzip -d httpd-2_0_NN.tar.gz
# tar xvf httpd-2_0_NN.tar
(3) 配置.
# ./configure --prefix= /usr/local/apache
表示Apache將安裝(zhuāng)在/usr/local/apache目(mù)錄下
(4) 編譯與安裝
# make
# make install
(5) 測試
# /usr/local/apache/bin/apachectl start
二,使(shǐ)用RPM包安裝
# rpm —ivh apache-*.rpm
完成安裝後,配置(zhì)文件在/etc/httpd/conf/目錄下,文件根目(mù)錄(lù)為/var/www/html,工具文件在/etc/rc.d/init.d/目錄下(xià),日誌(zhì)文件在/var/log/httpd/目錄下(xià)。
第三站 Apache 2.0的配(pèi)置
Apache 2.0的(de)主配置文件為httpd.conf。如果以(yǐ)上述源代碼安(ān)裝則配置文件(jiàn)保存在/usr/local/apache/conf/目錄下,若以(yǐ)RPM包方式安裝則配置文件保存(cún)在(zài)/etc/httpd/conf/目錄下。我(wǒ)們(men)可以(yǐ)直接(jiē)修(xiū)改httpd.conf文(wén)件也可以用redhat linux 9自(zì)帶的圖形化工具來配(pèi)置。打(dǎ)開(kāi)啟動程序->係統(tǒng)設置->服務器設置->HTTP服務器,可以進行相關。主界麵如圖:
下麵(miàn)我們來看一下httpd.conf中(zhōng)的幾條指(zhǐ)令,“#”後加入了注釋說明。
Port 80 #定義了(le)web服(fú)務器的偵聽端口(kǒu),默認值為80,它是TCP網絡端口之一。若寫入多個端口,以最後一個為準。
User apache #一般情況(kuàng)下,以nobody用(yòng)戶(hù)和nobody組來運行web服務器,因為web
Group apache # 服務(wù)器發出的所有的進程(chéng)都是以root用戶身份運行的,存在安全風險。
ServerAdmin root@localhost #指定服務(wù)器(qì)管理員(yuán)的(de)E-mail地址。服務(wù)器自(zì)動將錯誤報(bào)告(gào)到該(gāi)地址。
ServerRoot /etc/httpd #服務器的根目錄,一般情況下,所(suǒ)有(yǒu)的配置文件在(zài)該目錄(lù)下
ServerName new.host.name:80 #web客戶搜索的主機(jī)名稱
KeepAliveTimeout 15 #規定了連(lián)續請求之間(jiān)等待(dài)15秒,若超過,則重(chóng)新建立一條(tiáo)新的TCP連接
MaxKeepAliveRequests 100 #永久連接的HTTP請求數
MaxClients 150 #同一時間(jiān)連接(jiē)到服務器上的(de)客戶機總數
ErrorLog logs/error_log #用(yòng)來指定錯誤日誌(zhì)文件的名稱和路徑
PidFile run/httpd.pid #用來存放httpd進程號,以方便停止(zhǐ)服(fú)務器。
Timeout 300 #設(shè)置請求超時時間,若網速較慢則(zé)應把值設(shè)大。
DocumentRoot /var/www/html #用來存放(fàng)網頁文件(jiàn)
第四站 Apache的管理
(1) 啟動和(hé)停(tíng)止Apache
/etc/rc.d/init.d/httpd start
/etc/rc.d/init.d/httpd stop
(2) Apache的日誌(zhì)文件
有人(rén)說判定(dìng)一個管理員是否優秀之(zhī)一(yī)就(jiù)是(shì)看他(tā)是否是(shì)一個分析日誌的能手,因(yīn)為從日誌文(wén)件中(zhōng)獲取的反饋信(xìn)息對管理員來說是相當重要的。Apache的日至文件主要包括訪問日誌和錯(cuò)誤日誌(zhì)。訪(fǎng)問日誌記錄了該服務器所有的(de)請求的過程,主要記錄(lù)的是客戶的信息,通過它我們可以知道什麽人訪問(wèn)了該網(wǎng)站,什麽時候訪問的,訪(fǎng)問的內容是什麽等等(děng)。錯(cuò)誤日誌則是記錄了服務器出錯的細節和如何處理等。日誌文件(jiàn)的(de)位(wèi)置(zhì)是由上述主配置文(wén)件httpd.conf來規定的。Redhat中有一個(gè)查看日(rì)誌(zhì)的工(gōng)具——係(xì)統(tǒng)日誌(zhì)。其主界麵如下
下麵(miàn)各舉一個例子來說明他的格式:
錯誤日誌的寫法:
[Mon sep 22 14:32:52 2003] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
[Mon sep 22 14:32:52 2003] 錯(cuò)誤發生的時間。
[error] 表示錯(cuò)誤的級別。有debug,info,notice,warn,error,crit,alert,emerg,這些級(jí)別由低到高表(biǎo)示(shì)了錯誤(wù)的嚴(yán)重性。
[client 127.0.0.1] 表示客(kè)戶端IP地址。
client denied by server configuration: /export/home/live/ap/htdocs/test 標是錯誤的具體信息。
訪問日誌的寫法:
127.0.0.1 - wangdong [22/sep/2003:13:55:36 -0800] "GET /apache_pb.gif HTTP/1.0" 200 2326
127.0.0.1 表示訪問(wèn)這台服(fú)務器(qì)的客戶端IP地址。
Wangdong 表(biǎo)示用戶的登(dēng)錄名。
[22/sep/2003:13:55:36 -0800] 服務器完成客戶端請求的時間,格式為[日/月/年:小(xiǎo)時:分鍾:秒 時(shí)區]
"GET /apache_pb.gif HTTP/1.0" 表示客戶端訪問(wèn)該(gāi)資(zī)源所使用的(de)方(fāng)法(fǎ)。
200 記錄的是(shì)服務器返回給客戶的(de)狀(zhuàng)態碼。200表示(shì)成(chéng)功,以4打(dǎ)頭的表示訪問出錯。
2326 表示發給(gěi)客戶端的總字節數。若(ruò)是“—”表(biǎo)示沒有找到訪問資源。
但在實(shí)際(jì)應用中,對於大型網(wǎng)站,日誌文件往往(wǎng)增長的很(hěn)快,不利於我們查詢,降低(dī)服務(wù)器的效(xiào)率,而且(qiě)占用大量(liàng)的(de)磁盤空間,所以(yǐ)我們必須對日誌進(jìn)行(háng)定期的維護。
既(jì)然日誌文(wén)件很(hěn)大,那麽(me)我們如(rú)何把一(yī)大堆枯燥的數據整理成容易讓我們看懂的(de)形式呢?有(yǒu)沒有(yǒu)這樣的工具呢?非常幸運,在redhat linux 9中自(zì)帶了一個分(fèn)析(xī)日誌的工具——webalizer,如圖:
我(wǒ)們也(yě)可以在網上找到大(dà)量這樣優秀的免費的工具,例如:WebTrends Analysis Series。
第五站 配置虛擬主(zhǔ)機(jī)
虛擬主機是在一台www服務(wù)器上(shàng)為(wéi)多個單獨(dú)的域(yù)名提供www服務,每個域名具有(yǒu)自己的目錄和配置,相當(dāng)於將一(yī)台主機分為(wéi)多台主機,虛擬主機技術對(duì)於主(zhǔ)機數量不(bú)足(zú),但又想為不同的用(yòng)戶提供獨立的Web服務(wù)的需求非常有(yǒu)效。而對於(yú)一個公司,利用(yòng)價格昂貴的服務器隻提供一種域名服務,似(sì)乎是不明智(zhì)的,而(ér)現在越(yuè)來(lái)越多的(de)公司喜歡(huān)在一台服務器上使用多個域名服務,架設不同的網站,這樣(yàng)做的(de)好處是顯而易(yì)見(jiàn)。
Apache有(yǒu)兩種方式支持(chí)虛擬主機,一種是基於IP的虛擬主機,另一(yī)種(zhǒng)是基於名字的虛(xū)擬(nǐ)主(zhǔ)機。基於名字的虛擬(nǐ)主機使用相同的IP地址來配置不同(tóng)的虛擬主(zhǔ)機,這就彌補了因IP地址不(bú)足而帶來的問題。基於名(míng)字的虛擬主機的配置相當簡單,你隻需配(pèi)置(zhì)你得DNS服務器(qì)使(shǐ)每個主機名對(duì)應正確的IP地(dì)址,然後再配(pèi)置(zhì)Apa
關鍵詞:Linux,服(fú)務(wù)器
閱讀本文後您有什麽(me)感想? 已有 人(rén)給出評價!
- 16
- 17
- 33
- 9
- 2
- 10