Linux配置web服務(wù)器全攻略 |
| 發(fā)布時(shí)間: 2012/8/13 13:58:07 |
|
Linux操作系統(tǒng)近幾年有了蓬勃的發(fā)展,在整個(gè)世界范圍內(nèi)得到了越來越多公司和團(tuán)體的支持,尤其是最近IBM公司的鼎力支持,更是使Linux服務(wù)器如虎添翼,更上一層樓。而在國(guó)內(nèi),Linux的應(yīng)用也是方興未艾,眾多公司已經(jīng)投入到Linux系統(tǒng)的研發(fā)和推廣工作中。一些優(yōu)秀的Linux操作系統(tǒng)相繼出現(xiàn),比如紅旗Linux等。但是我國(guó)的Linux應(yīng)用水平還很低,熟悉Linux的人員嚴(yán)重缺乏,Linux專業(yè)人才的缺乏已成為L(zhǎng)inux在國(guó)內(nèi)應(yīng)用和普及的瓶頸問題。據(jù)《開放系統(tǒng)世界》2003年第八期介紹,中國(guó)五年內(nèi)Linux人才需求量將會(huì)超過120萬。而“1+1+1”工程的實(shí)施,也是間接地告訴我們這個(gè)問題的嚴(yán)重性。如此大好時(shí)機(jī),我們干嗎還愣著不動(dòng)呢!如果你是一位Linux愛好者,你可能已經(jīng)掌握了基本的Linux的知識(shí)與操作,毫無疑問,你并不會(huì)去滿足這樣小小的成就。Linux為何如此的流行?其最大的特點(diǎn)莫過于功能強(qiáng)大,性能穩(wěn)定的服務(wù)器應(yīng)用了。像WWW,MAIL,FTP,DNS和SMB等。在這篇文章中,我將以Redhat Linux 9為藍(lán)本,從Web服務(wù)器的一些最基本的操作入手,從初學(xué)者使用的態(tài)度,讓讀者正確充分的認(rèn)識(shí)Apache。好,現(xiàn)在就讓我們一起踏上征服Apache的自由之路吧。
第一站 Apache的歷史與前景 1995年,美國(guó)國(guó)家計(jì)算機(jī)安全協(xié)會(huì)(NCSA)的開發(fā)者創(chuàng)建了NCSZ全球網(wǎng)絡(luò)服務(wù)軟件,其最大的特點(diǎn)是HTTP精靈程序,它比當(dāng)時(shí)的CERN服務(wù)器更容易由源碼來配置和創(chuàng)建,又由于當(dāng)時(shí)其他服務(wù)器軟件的缺乏,他很快流行起來。但是后來,該服務(wù)器的核心開發(fā)人員幾乎都離開了NCSA,一些使用者們自己成立了一個(gè)組織來管理他們編寫的補(bǔ)丁,于是Apache Group應(yīng)運(yùn)而生。他們把該服務(wù)器軟件稱為Apache。Apache源于A patchy server的讀音,意思是充滿補(bǔ)丁的服務(wù)器。如今Apache慢慢地已經(jīng)成為Internet上最流行的Web服務(wù)器軟件了。在所有的Web服務(wù)器軟件中,Apache占據(jù)絕對(duì)優(yōu)勢(shì),遠(yuǎn)遠(yuǎn)領(lǐng)先排名第二的Microsoft IIS。如果你對(duì)它感興趣,你可以訪問Apache的官方網(wǎng)站:http://www.apache.org。Apache作為自由軟件之一,像其他自由軟件一樣,他們都是由許許多多的自由開發(fā)人員投入了大量的時(shí)間和精力來實(shí)現(xiàn)并逐步完善的,所以我們有理由相信Apache的發(fā)展前景會(huì)更好。 第二站 Apache 2.0的安裝 Apache 2.0的配置與安裝和Apache 1.3的有很大的不同,他像其它的開源軟件一樣,使用libtool和autoconf來配置環(huán)境。但不管是Apache幾通常都有兩種安裝方式:源代碼安裝和RPM包安裝。這兩種安裝類型各有特色,RPM包安裝不需要編譯,而源代碼安裝則需要先配置編譯再安裝,RPM包安裝在一個(gè)固定的位置下,選擇固定的模塊,而源代碼安裝則可以讓你選擇安裝路徑,選擇你想要的模塊。下面分別以實(shí)例的形式來介紹兩種類型的安裝方法。 一,使用源代碼安裝 (1) 獲得源代碼 # lynx http://www.apache.org/dist/httpd/httpd-2_0_NN.tar.gz NN表示當(dāng)前所用的版本號(hào)。 (2) 解壓縮 # gzip -d httpd-2_0_NN.tar.gz # tar xvf httpd-2_0_NN.tar (3) 配置. # ./configure --prefix= /usr/local/apache 表示Apache將安裝在/usr/local/apache目錄下 (4) 編譯與安裝 # make # make install (5) 測(cè)試 # /usr/local/apache/bin/apachectl start 二,使用RPM包安裝 # rpm —ivh apache-*.rpm 完成安裝后,配置文件在/etc/httpd/conf/目錄下,文件根目錄為/var/www/html,工具文件在/etc/rc.d/init.d/目錄下,日志文件在/var/log/httpd/目錄下。 第三站 Apache 2.0的配置 Apache 2.0的主配置文件為httpd.conf。如果以上述源代碼安裝則配置文件保存在/usr/local/apache/conf/目錄下,若以RPM包方式安裝則配置文件保存在/etc/httpd/conf/目錄下。我們可以直接修改httpd.conf文件也可以用redhat linux 9自帶的圖形化工具來配置。打開啟動(dòng)程序->系統(tǒng)設(shè)置->服務(wù)器設(shè)置->HTTP服務(wù)器,可以進(jìn)行相關(guān)。主界面如圖: 下面我們來看一下httpd.conf中的幾條指令,“#”后加入了注釋說明。 Port 80 #定義了web服務(wù)器的偵聽端口,默認(rèn)值為80,它是TCP網(wǎng)絡(luò)端口之一。若寫入多個(gè)端口,以最后一個(gè)為準(zhǔn)。 User apache #一般情況下,以nobody用戶和nobody組來運(yùn)行web服務(wù)器,因?yàn)閣eb Group apache # 服務(wù)器發(fā)出的所有的進(jìn)程都是以root用戶身份運(yùn)行的,存在安全風(fēng)險(xiǎn)。 ServerAdmin root@localhost #指定服務(wù)器管理員的E-mail地址。服務(wù)器自動(dòng)將錯(cuò)誤報(bào)告到該地址。 ServerRoot /etc/httpd #服務(wù)器的根目錄,一般情況下,所有的配置文件在該目錄下 ServerName new.host.name:80 #web客戶搜索的主機(jī)名稱 KeepAliveTimeout 15 #規(guī)定了連續(xù)請(qǐng)求之間等待15秒,若超過,則重新建立一條新的TCP連接 MaxKeepAliveRequests 100 #永久連接的HTTP請(qǐng)求數(shù) MaxClients 150 #同一時(shí)間連接到服務(wù)器上的客戶機(jī)總數(shù) ErrorLog logs/error_log #用來指定錯(cuò)誤日志文件的名稱和路徑 PidFile run/httpd.pid #用來存放httpd進(jìn)程號(hào),以方便停止服務(wù)器。 Timeout 300 #設(shè)置請(qǐng)求超時(shí)時(shí)間,若網(wǎng)速較慢則應(yīng)把值設(shè)大。 DocumentRoot /var/www/html #用來存放網(wǎng)頁文件 第四站 Apache的管理 (1) 啟動(dòng)和停止Apache /etc/rc.d/init.d/httpd start /etc/rc.d/init.d/httpd stop (2) Apache的日志文件 有人說判定一個(gè)管理員是否優(yōu)秀之一就是看他是否是一個(gè)分析日志的能手,因?yàn)閺娜罩疚募蝎@取的反饋信息對(duì)管理員來說是相當(dāng)重要的。Apache的日至文件主要包括訪問日志和錯(cuò)誤日志。訪問日志記錄了該服務(wù)器所有的請(qǐng)求的過程,主要記錄的是客戶的信息,通過它我們可以知道什么人訪問了該網(wǎng)站,什么時(shí)候訪問的,訪問的內(nèi)容是什么等等。錯(cuò)誤日志則是記錄了服務(wù)器出錯(cuò)的細(xì)節(jié)和如何處理等。日志文件的位置是由上述主配置文件httpd.conf來規(guī)定的。Redhat中有一個(gè)查看日志的工具——系統(tǒng)日志。其主界面如下 下面各舉一個(gè)例子來說明他的格式: 錯(cuò)誤日志的寫法: [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ò)誤發(fā)生的時(shí)間。 [error] 表示錯(cuò)誤的級(jí)別。有debug,info,notice,warn,error,crit,alert,emerg,這些級(jí)別由低到高表示了錯(cuò)誤的嚴(yán)重性。 [client 127.0.0.1] 表示客戶端IP地址。 client denied by server configuration: /export/home/live/ap/htdocs/test 標(biāo)是錯(cuò)誤的具體信息。 訪問日志的寫法: 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 表示訪問這臺(tái)服務(wù)器的客戶端IP地址。 Wangdong 表示用戶的登錄名。 [22/sep/2003:13:55:36 -0800] 服務(wù)器完成客戶端請(qǐng)求的時(shí)間,格式為[日/月/年:小時(shí):分鐘:秒 時(shí)區(qū)] "GET /apache_pb.gif HTTP/1.0" 表示客戶端訪問該資源所使用的方法。 200 記錄的是服務(wù)器返回給客戶的狀態(tài)碼。200表示成功,以4打頭的表示訪問出錯(cuò)。 2326 表示發(fā)給客戶端的總字節(jié)數(shù)。若是“—”表示沒有找到訪問資源。 但在實(shí)際應(yīng)用中,對(duì)于大型網(wǎng)站,日志文件往往增長(zhǎng)的很快,不利于我們查詢,降低服務(wù)器的效率,而且占用大量的磁盤空間,所以我們必須對(duì)日志進(jìn)行定期的維護(hù)。 既然日志文件很大,那么我們?nèi)绾伟岩淮蠖芽菰锏臄?shù)據(jù)整理成容易讓我們看懂的形式呢?有沒有這樣的工具呢?非常幸運(yùn),在redhat linux 9中自帶了一個(gè)分析日志的工具——webalizer,如圖: 我們也可以在網(wǎng)上找到大量這樣優(yōu)秀的免費(fèi)的工具,例如:WebTrends Analysis Series。 第五站 配置虛擬主機(jī) 虛擬主機(jī)是在一臺(tái)www服務(wù)器上為多個(gè)單獨(dú)的域名提供www服務(wù),每個(gè)域名具有自己的目錄和配置,相當(dāng)于將一臺(tái)主機(jī)分為多臺(tái)主機(jī),虛擬主機(jī)技術(shù)對(duì)于主機(jī)數(shù)量不足,但又想為不同的用戶提供獨(dú)立的Web服務(wù)的需求非常有效。而對(duì)于一個(gè)公司,利用價(jià)格昂貴的服務(wù)器只提供一種域名服務(wù),似乎是不明智的,而現(xiàn)在越來越多的公司喜歡在一臺(tái)服務(wù)器上使用多個(gè)域名服務(wù),架設(shè)不同的網(wǎng)站,這樣做的好處是顯而易見。 Apache有兩種方式支持虛擬主機(jī),一種是基于IP的虛擬主機(jī),另一種是基于名字的虛擬主機(jī)。基于名字的虛擬主機(jī)使用相同的IP地址來配置不同的虛擬主機(jī),這就彌補(bǔ)了因IP地址不足而帶來的問題。基于名字的虛擬主機(jī)的配置相當(dāng)簡(jiǎn)單,你只需配置你得DNS服務(wù)器使每個(gè)主機(jī)名對(duì)應(yīng)正確的IP地址,然后再配置Apache HTTP Server使它能認(rèn)識(shí)不同的主機(jī)名就可以了。 假設(shè)我們組建了一家多媒體制作公司,有一臺(tái)Apache服務(wù)器和一個(gè)IP地址:192.168.0.1 要運(yùn)行兩種業(yè)務(wù),一種為電子商務(wù)網(wǎng)站,域名為www.business.media.com ,另一種為教學(xué)網(wǎng)站,域名為www.teaching.media.com 。先在DNS服務(wù)器中把域名www.business.media.com和www.teachin....conf就可以了。 NameVirtualHost 192.168.0.1 ServerName www.business.media.com DocumentRoot /var/www/html/business ServerName www.teaching.media.com DocumentRoot /var/www/html/teaching 而基于IP的虛擬主機(jī)則要求使用不同的IP地址來區(qū)別不同的虛擬主機(jī),這就要求使用多塊網(wǎng)卡,把不同的IP地址捆綁到不同的網(wǎng)卡上,或者在一塊網(wǎng)卡上捆綁多個(gè)IP地址。假設(shè)我們主機(jī)的IP地址為192.168.0.1(www.media.com),另外有兩個(gè)IP地址別?..nf/httpd.conf。 ServerAdmin webmaster@ business.media.com DocumentRoot /var/www/html/business ServerName www.business.media.com ErrorLog /var/www/html/business/logs/error_log TransferLog /var/www/html/business/logs/access_log ServerAdmin webmaster@teaching.media.com DocumentRoot /var/www/html/teaching ServerName www.teaching.media.com ErrorLog /var/www/html/teaching/logs/error_log TransferLog /var/www/html/teaching/logs/access_log 第六站配置Apache代理 代理服務(wù)器是網(wǎng)絡(luò)信息服務(wù)的中轉(zhuǎn)站。如果我們把Apache代理服務(wù)器形象地比喻成代理商的話,消費(fèi)者向代理商購(gòu)買東西時(shí),如果代理商有的話,可直接賣給消費(fèi)者,若沒有,則代理商向廠家進(jìn)貨,再賣給消費(fèi)者。這樣做有以下幾點(diǎn)好處:(1)提高了訪問速度。(2)充當(dāng)防火墻,增加了安全性。(3)可以過濾一些不良網(wǎng)站。(4)具有緩存功能。(5)節(jié)省IP開銷。代理服務(wù)器可分為兩種類型:客戶端代理和服務(wù)器端代理。下面我們?cè)谥v解幾個(gè)指令后舉例說明各自的配置方法。 ProxyRequest On/Off #啟用或者禁用Apache代理服務(wù)。 CacheRoot "/etc/httpd/proxy" #代理緩存的根目錄。 CacheSize 5 #代理緩存的大小。 CacheGcInterval 4 #設(shè)定運(yùn)行管理緩存的無用數(shù)據(jù)搜集程序的時(shí)間間隔 CacheMaxExpire 24 #文件過期時(shí)間。 CacheDefaultExpire 1 #指定未包含過期信息文件的有效期。 NoCache a-domain.com another-domain.edu #該網(wǎng)站的文件將不被緩存。 l 客戶端代理的配置 (1) 修改/etc/httpd/conf/httpd.conf中的相關(guān)指令 (2) 修改/etc/httpd/conf/httpd.conf,添加對(duì)代理目錄的訪問控制。 Order deny,allow Deny from all Allow from .your-domain.com (3) 重啟httpd。 l 服務(wù)器端代理的配置 服務(wù)器端代理與客戶端代理不同,它是在防火墻上安裝Apache服務(wù)器,使用它提供對(duì)WWW服務(wù)器的代理訪問。這種方法把WWW服務(wù)器與外部隔開,提高了安全性,而對(duì)用戶來說,好像沒有變化一樣。假設(shè)在內(nèi)部局域網(wǎng)中WWW服務(wù)器的IP地址為192.168.0.2,防火墻主機(jī)內(nèi)部IP地址為192.168.0.5,外部IP地址為192.9.202.1。 (一) 配置防火墻上的Apache (1) 在/etc/httpd/conf/httpd.conf中添加虛擬主機(jī)。 ServerAdmin webmaster@business.media.com DocumentRoot /www/docs/business.media.com ServerName www.business.media.com ErrorLog logs/business.media.com-error_log CustomLog logs/business.media.com-log_common (2) 配置局域網(wǎng)中的DNS服務(wù)器,把www.business.media.com指向192.9.201.1。 (二) 配置局域網(wǎng)內(nèi)部WWW服務(wù)器 在Linux環(huán)境下,有一個(gè)非常流行的代理服務(wù)器軟件——Squid。他的功能非常的強(qiáng)大,支持HTTP,FTP,Gopher,SSL,和WAIS等協(xié)議的代理,而且設(shè)置簡(jiǎn)單,只需再配置文件中稍稍改動(dòng)就可以了。 好了,WWW服務(wù)器配置這條路總算走完了,筆者希望讀過此文章的人能夠有所收獲,最后,希望在學(xué)習(xí)Linux這條充滿樂趣而又布滿荊棘的路上的愛好者們,永不言敗,成為真正的高手。 本文出自:億恩科技【www.zuiquanben.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |
京公網(wǎng)安備41019702002023號(hào)