Linux 配置WWW伺服器全攻略

來源:互聯網
上載者:User

第一站 Apache的曆史與前景
1995年,美國國家電腦安全協會(NCSA)的開發人員建立了NCSZ全球網路服務軟體,其最大的特點是HTTP精靈程式,它比當時的CERN伺服器更容易由源碼來配置和建立,又由於當時其他伺服器軟體的缺乏,他很快流行起來。但是後來,該伺服器的核心開發人員幾乎都離開了NCSA,一些使用者們自己成立了一個組織來管理他們編寫的補丁,於是Apache Group應運而生。他們把該伺服器軟體稱為Apache。Apache源於A patchy server的讀音,意思是充滿補丁的伺服器。如今Apache慢慢地已經成為Internet上最流行的Web伺服器軟體了。在所有的Web伺服器軟體中,Apache佔據絕對優勢,遠遠領先排名第二的Microsoft IIS。如果你對它感興趣,你可以訪問Apache的官方網站:http://www.apache.org。Apache作為自由軟體之一,像其他自由軟體一樣,他們都是由許許多多的自由開發人員投入了大量的時間和精力來實現並逐步完善的,所以我們有理由相信Apache的發展前景會更好。
第二站 Apache 2.0的安裝  
Apache 2.0的配置與安裝和Apache 1.3的有很大的不同,他像其它的開源軟體一樣,使用libtool和autoconf來配置環境。但不管是Apache幾通常都有兩種安裝方式:原始碼安裝和RPM包安裝。這兩種安裝類型各有特色,RPM包安裝不需要編譯,而原始碼安裝則需要先配置編譯再安裝,RPM包安裝在一個固定的位置下,選擇固定的模組,而原始碼安裝則可以讓你選擇安裝路徑,選擇你想要的模組。下面分別以執行個體的形式來介紹兩種類型的安裝方法。
一,使用原始碼安裝
(1) 獲得原始碼
# lynx http://www.apache.org/dist/httpd/httpd-2_0_NN.tar.gz
NN表示當前所用的版本號碼。
(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) 測試
# /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內建的圖形化工具來配置。開啟啟動程式->系統設定->伺服器設定->HTTP伺服器,可以進行相關。主介面
下面我們來看一下httpd.conf中的幾條指令,“#”後加入了注釋說明。
Port 80 #定義了web伺服器的偵聽連接埠,預設值為80,它是TCP網路連接埠之一。若寫入多個連接埠,以最後一個為準。
User apache #一般情況下,以nobody使用者和nobody組來運行web伺服器,因為web
Group apache # 伺服器發出的所有的進程都是以root使用者身份啟動並執行,存在安全風險。 
ServerAdmin root@localhost #指定伺服器管理員的E-mail地址。伺服器自動將錯誤報表到該地址。 
ServerRoot /etc/httpd #伺服器的根目錄,一般情況下,所有的設定檔在該目錄下
ServerName new.host.name:80 #web客戶搜尋的主機名稱
KeepAliveTimeout 15 #規定了連續請求之間等待15秒,若超過,則重建立立一條新的TCP串連 
MaxKeepAliveRequests 100 #永久串連的HTTP請求數
MaxClients 150 #同一時間串連到伺服器上的客戶機總數
ErrorLog logs/error_log #用來指定錯誤記錄檔檔案的名稱和路徑
PidFile run/httpd.pid #用來存放httpd進程號,以方便停止伺服器。
Timeout 300 #佈建要求逾時時間,若網速較慢則應把值設大。
DocumentRoot /var/www/html #用來存放網頁檔案
第四站 Apache的管理
(1) 啟動和停止Apache
/etc/rc.d/init.d/httpd start
/etc/rc.d/init.d/httpd stop
(2) Apache的記錄檔
有人說判定一個管理員是否優秀之一就是看他是否是一個分析日誌的能手,因為從記錄檔中擷取的反饋資訊對管理員來說是相當重要的。Apache的日至檔案主要包括訪問日誌和錯誤記錄檔。訪問日誌記錄了該伺服器所有的請求的過程,主要記錄的是客戶的資訊,通過它我們可以知道什麼人訪問了該網站,什麼時候訪問的,訪問的內容是什麼等等。錯誤記錄檔則是記錄了伺服器出錯的細節和如何處理等。記錄檔的位置是由上述主設定檔httpd.conf來規定的。Redhat中有一個查看日誌的工具——系統日誌。其主介面如下

下面各舉一個例子來說明他的格式:
錯誤記錄檔的寫法:
[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] 錯誤發生的時間。
[error] 表示錯誤的層級。有debug,info,notice,warn,error,crit,alert,emerg,這些層級由低到高表示了錯誤的嚴重性。
[client 127.0.0.1] 表示用戶端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 表示訪問這台伺服器的用戶端IP地址。
Wangdong 表示使用者的登入名稱。
[22/sep/2003:13:55:36 -0800] 伺服器完成用戶端請求的時間,格式為[日/月/年:小時:分鐘:秒 時區]
"GET /apache_pb.gif HTTP/1.0" 表示用戶端訪問該資源所使用的方法。
200 記錄的是伺服器返回給客戶的狀態代碼。200表示成功,以4打頭的表示訪問出錯。
2326 表示發給用戶端的總位元組數。若是“—”表示沒有找到訪問資源。
但在實際應用中,對於大型網站,記錄檔往往增長的很快,不利於我們查詢,降低伺服器的效率,而且佔用大量的磁碟空間,所以我們必須對日誌進行週期性維護。
既然記錄檔很大,那麼我們如何把一大堆枯燥的資料整理成容易讓我們看懂的形式呢?有沒有這樣的工具呢?非常幸運,在redhat linux 9中內建了一個分析日誌的工具——webalizer,
我們也可以在網上找到大量這樣優秀的免費的工具,例如:WebTrends Analysis Series。
第五站 配置虛擬機器主機  
虛擬機器主機是在一台www伺服器上為多個單獨的網域名稱提供www服務,每個網域名稱具有自己的目錄和配置,相當於將一台主機分為多台主機,虛擬機器主機技術對於主機數量不足,但又想為不同的使用者提供獨立的Web服務的需求非常有效。而對於一個公司,利用價格昂貴的伺服器只提供一種網域名稱服務 (DNS),似乎是不明智的,而現在越來越多的公司喜歡在一台伺服器上使用多個網域名稱服務 (DNS),架設不同的網站,這樣做的好處是顯而易見。
Apache有兩種方式支援虛擬機器主機,一種是基於IP的虛擬機器主機,另一種是基於名字的虛擬機器主機。基於名字的虛擬機器主機使用相同的IP地址來配置不同的虛擬機器主機,這就彌補了因IP地址不足而帶來的問題。基於名字的虛擬機器主機的配置相當簡單,你只需配置你得DNS伺服器使每個主機名稱對應正確的IP地址,然後再配置Apache HTTP Server使它能認識不同的主機名稱就可以了。
假設我們組建了一家多媒體製作公司,有一台Apache伺服器和一個IP地址:192.168.0.1 要運行兩種業務,一種為電子商務網站,網域名稱為www.business.media.com ,另一種為教學網站,網域名稱為www.teaching.media.com 。先在DNS伺服器中把網域名稱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的虛擬機器主機則要求使用不同的IP地址來區別不同的虛擬機器主機,這就要求使用多塊網卡,把不同的IP地址捆綁到不同的網卡上,或者在一塊網卡上捆綁多個IP地址。假設我們主機的IP地址為192.168.0.1(www.media.com),另外有兩個IP地址別?..nf/httpd.conf。[/url]
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代理
Proxy 伺服器是網路資訊服務的中轉站。如果我們把ApacheProxy 伺服器形象地比喻成代理商的話,消費者向代理商購買東西時,如果代理商有的話,可直接賣給消費者,若沒有,則代理商向廠家進貨,再賣給消費者。這樣做有以下幾點好處:(1)提高了訪問速度。(2)充當防火牆,增加了安全性。(3)可以過濾一些不良網站。(4)具有緩衝功能。(5)節省IP開銷。Proxy 伺服器可分為兩種類型:用戶端代理和伺服器端代理。下面我們在講解幾個指令後舉例說明各自的配置方法。
ProxyRequest On/Off #啟用或者禁用Apache代理服務。
CacheRoot "/etc/httpd/proxy" #代理緩衝的根目錄。
CacheSize 5 #代理緩衝的大小。
CacheGcInterval 4 #設定運行管理緩衝的無用資料搜集程式的時間間隔
CacheMaxExpire 24 #檔案到期時間。
CacheDefaultExpire 1 #指定未包含到期資訊檔的有效期間。
NoCache a-domain.com another-domain.edu #該網站的檔案將不被緩衝。
l 用戶端代理的配置
(1) 修改/etc/httpd/conf/httpd.conf中的相關指令
(2) 修改/etc/httpd/conf/httpd.conf,添加對代理目錄的存取控制。
Order deny,allow
Deny from all
Allow from .your-domain.com
(3) 重啟httpd。
l 伺服器端代理的配置
伺服器端代理與用戶端代理不同,它是在防火牆上安裝Apache伺服器,使用它提供對WWW伺服器的代理訪問。這種方法把WWW伺服器與外部隔開,提高了安全性,而對使用者來說,好像沒有變化一樣。假設在內部區域網路中WWW伺服器的IP地址為192.168.0.2,防火牆主機內部IP地址為192.168.0.5,外部IP地址為192.9.202.1。
(一) 配置防火牆上的Apache
(1) 在/etc/httpd/conf/httpd.conf中添加虛擬機器主機。
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) 配置區域網路中的DNS伺服器,把www.business.media.com指向192.9.201.1。
(二) 配置區域網路內部WWW伺服器
在Linux環境下,有一個非常流行的Proxy 伺服器軟體——Squid。他的功能非常的強大,支援HTTP,FTP,Gopher,SSL,和WAIS等協議的代理,而且設定簡單,只需再設定檔中稍稍改動就可以了。
好了,WWW伺服器配置這條路總算走完了,筆者希望讀過此文章的人能夠有所收穫,最後,希望在學習Linux這條充滿樂趣而又布滿荊棘的路上的愛好者們,永不言敗,成為真正的高手。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.