綠色(sè)資源網:您身邊最(zuì)放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專(zhuān)題|廠商(shāng)大全

綠色(sè)資(zī)源(yuán)網

技術教(jiāo)程
您的位置:首(shǒu)頁服務(wù)器類Web服務器 → 用Apache架設Web服務器

用Apache架設Web服務器

我(wǒ)要評論 2014/11/10 22:40:12 來源:綠色資源(yuán)網 編輯:佚(yì)名 [ 小(xiǎo)] 評(píng)論:0 點擊:2623次

  建立Linux下的(de)Web服務器可以(yǐ)選用Netscape的Enterprise Server,或(huò)者(zhě)使用免費軟件Apache。 Netscape可以完全支持基於(yú)IP的虛擬主機,但對基於域名的虛擬主機卻不支持,因此隻能(néng)顯示(shì)最外麵的一層網頁。基於(yú)IP的虛(xū)擬主機(jī)需要一(yī)個(gè)獨立的IP;基於域名的虛擬主機(jī),可以多個虛(xū)擬主機共用一個(gè)IP。利用HTTP 1.1協議,靠(kào)不同的域名來區分可以(yǐ)大大節省IP地址資(zī)源。Apache完全(quán)支持(chí)以上兩種虛擬主機方式,並且克服了Netscape經常(cháng)出現服務塞死的現(xiàn)象。Apache是目前互聯(lián)網上使用廣泛的Web服(fú)務器。下(xià)麵詳細講解(jiě)如何利用Apache來架設自己的Web服(fú)務器。

  安(ān)裝

  首先我們要介紹Apache的(de)安裝(zhuāng)過程。

  第一,先到http://www.apache.org下載最新(xīn)版(bǎn)本的Apache。如(rú)果是在Windows下(xià),把該文件下載在C盤,C盤在Linux中對(duì)應於/dev/hda1。

  第二,進入(rù)Linux,並以 root 的身份登錄並進行(háng)掛接文件(jiàn)係統。

  # mkdir c
  # mount -t vfat /dev/hda1 /c

  因為我們(men)將Apache的源(yuán)碼放置(zhì)於c盤,所以現在要先把(bǎ)它(tā)掛載至新建的目錄/c裏麵。

  第三,把此程序(xù)拷貝(bèi)到(dào)/tmp下,以便操作。

  #cp /c/apache_1.3.9.tar.gz /tmp

  注意:Linux下所有的文件(jiàn)名(míng)都是區分大(dà)小寫的(de)。接下來,我們(men)就要把源(yuán)碼從壓縮包(bāo)中解壓(yā)縮(suō)出來。相應的命令為(wéi):

  #cd /tmp
  #tar zxvf apache_ 1.3.9.tar.gz

  解壓縮後進入(rù)存(cún)放源碼的目錄,使用編譯配(pèi)置(zhì)腳本進行環(huán)境的設置。

  #cd /tmp/apache_1.3.9
  #./configure--sysconfdir=/etc/httpd
  --datadir=/home/httpd
  --logfiledir=/var/log/httpd
  --enable-module=most
  --enable-shared=max
  --disable-rule= WANTHSREGEX

  這裏告訴Apache把配置(zhì)文件保存在/etc/httpd目錄(lù)中,其它文件(例如HTML手冊文檔、CGI-BIN目錄)都(dōu)保存在 /home/httpd目錄下。也告訴(sù)Apache將最常用(yòng)的模塊作為DSO模塊編譯(yì)。DSO就是Dynamic Shared Object的(de)縮寫。通過DSO支持(chí)的(de)模式編譯Apache,能夠隨時從Apache裏(lǐ)麵增加和移除模塊,而不需要重新編譯它,具體(tǐ)的模塊見(jiàn)下(xià)文。  

  第四,在執行./configure 之後(hòu),配置腳本會自動生成 Makefile。這(zhè)時,我們就(jiù)可(kě)以開始(shǐ)編譯源碼了。

  #make

  源碼編譯完成後,就要使用make install安裝Apache至缺省的目錄下。當然也可以(yǐ)通過以下命令:

  #rpm -ivh apache*.rpm
 

  安裝(zhuāng)Apache的RPM包(bāo)。這種方法較為簡單,因此不再(zài)詳細介紹。

  配(pèi)置

  安裝(zhuāng)完Apache後,開始它(tā)的配置(zhì)工作。在(zài)其主目錄(lù)下有(yǒu)httpd.conf、access.conf、srm.conf 及Magic等(děng)四(sì)個(gè)文件,其中httpd.conf是主(zhǔ)要的配置文件,access.conf是訪問控製配置文件,srm.conf 則是對(duì)於Web主機的文件(jiàn)資源(yuán)的配置文件。Magic是針(zhēn)對mime模(mó)塊(kuài)的設置,我們一般(bān)不改動(dòng)這個文件。

  在Apache運(yùn)行的(de)時(shí)候,它先調用httpd.conf,接著是srm.conf,最後是access.conf。在較新的Apache發行版(bǎn)本(běn)中,它建議srm.conf和access.conf 兩(liǎng)個文件的(de)內容為(wéi)空,把設置選(xuǎn)項(xiàng)完全存放在httpd.conf之中,這樣會更加有利於服務(wù)器(qì)的安全性。

  下麵就以httpd.conf來(lái)開始我(wǒ)們(men)神(shén)奇的Web網絡世界。

  1.全局環境變量的設置

  httpd.conf是以全局(jú)環境變量的設置(zhì)開始的(de)。我們將要一步步介紹(shào)其(qí)具(jù)體的(de)參(cān)數(shù)。

  ServerType standalone
  ServerRoot "/etc/httpd"
 

  第一行"ServerType"指(zhǐ)令,說明(míng)Apache是以一個獨立的(Standalone)守護進程(chéng)的(de)身(shēn)份運行於(yú)後台,還是(shì)由(yóu)另外(wài)的(de)後台守護進程(Xinetd)在接到HTTP請(qǐng)求的(de)時候喚醒。對於正式(shì)的(de)互聯網站點來說,standalone可(kě)以提(tí)供(gòng)比xinetd方(fāng)式(shì)更快的客(kè)戶端響(xiǎng)應速度。因此我們選(xuǎn)用standalone模式。第二行代(dài)碼介紹了該(gāi)服務器配(pèi)置文件的相對根目錄,一般是/etc/httpd,我們在安(ān)裝時已(yǐ)經設置好(hǎo)。請注(zhù)意(yì),不要(yào)在(zài)此目錄最後加(jiā)"/"。

  LockFile /var/lock/httpd.lock
  PidFile /var/run/httpd.pid
  ScoreBoardFile /var/run/httpd.scoreboard

  LockFile在安裝(zhuāng)Apache時指(zhǐ)定(dìng)選用了USE_FCNTL _SERIALIZED_ACCEPT,USE_FLOCK_SERIALIZED_ACCEPT等參數。作為(wéi)Apache連接出(chū)現錯誤的記錄文件(jiàn),它會把(bǎ)進程的PID值自(zì)動加(jiā)在該(gāi)文件(jiàn)中。請注意,該文(wén)件應(yīng)保存在本地的硬盤中(zhōng)。PidFile記錄著(zhe)每次服務器運行時的進程號。ScoreBoardFile是某些(xiē)特(tè)定係統上服務程序中父子進程通訊記錄的文件。

  #ResourceConfig conf/srm.conf
  #AccessConfig conf/access.conf
 

  以上(shàng)兩項是指定(dìng)服務器資源及控製權限的文件,在默認(rèn)情況下(xià)並不使用它們(men)。

  Timeout 300
  KeepAlive On
  MaxKeepAliveRequests 100
  KeepAliveTimeout 15

這四(sì)項設定了(le)服(fú)務器的連接屬性(xìng)。第一(yī)行說(shuō)明了TCP中ack的響應時間為300秒;第二項表示是否保(bǎo)持服(fú)務響應的連(lián)接;緊接著的(de)兩(liǎng)項定義(yì)了這種連接的(de)最大響應數目及響應時間(jiān)。如果MaxKeepAliveRequests設為0,那它(tā)便(biàn)是unlimited,當然這就(jiù)要考慮係統的承載能(néng)力了(le)。

  MinSpareServers 5
  MaxSpareServers 20
  StartServers 8
 

  這(zhè)三項定義了服務程序的最小、最大空的子進程數目及服務程序開始時(shí)的進程數。5、20、8分別是它們的默認數值(zhí)。

  MaxClients 150
  MaxRequestsPerChild 100
 

  以(yǐ)上兩行定義了同一(yī)時刻(kè)最多(duō)的客戶連接數目和(hé)每個(gè)連接的子進程數。

  Listen 3000
  Listen 12.34.56.78:80
  BindAddress *
 

  這裏定義了服務程序(xù)監聽來自以上IP、端口號的Request。由於BindAddress隻(zhī)支持*(代表所有的IP),所以產(chǎn)生了Listen這個參數以便更靈活(huó)地處理客戶機的響應。

  ExtendedStatus On/Off
 

  這條指(zhǐ)令說明了(le)是否跟蹤服務程序所產生的擴展狀(zhuàng)態(tài)。

  以下是對於(yú)DSO的支持,分別利(lì)用了(le)LoadModule、AddModule參數。我們可以閱讀表1,加(jiā)載(zǎi)自己所需(xū)要的(de)模塊。

  2.主(zhǔ)服務器設置

  下麵(miàn)設(shè)置(zhì)主(zhǔ)服(fú)務器(qì)(非虛(xū)擬服務主機)。

  Port 80
 

  這(zhè)個(gè)參數給出(chū)了服務程序開啟監聽的端口號為(wéi)80。

  User nobody
  Group nobody
  ServerAdmin root@localhost
  ServerName localhost
 

  上麵的第一、二行(háng)代表了(le)打開服(fú)務(wù)進程的用(yòng)戶名和用(yòng)戶組(zǔ)名。第三(sān)、四行則是管(guǎn)理員(yuán)的郵件地址和此服(fú)務器(qì)的主機名。

  DocumentRoot "/home/httpd/html"
  DirectoryIndex index.html index.htm index.shtml index.cgi
  UserDir public_html
 

  麵前兩(liǎng)行定義(yì)了網頁(yè)的主目錄和首頁名(míng)稱(chēng)。UserDir給(gěi)出了用戶的絕對路徑(jìng),也就(jiù)是說(shuō)明(míng)個人主頁存放路徑。

  AccessFileName .htaccess

  此指令指定了每個目錄(lù)下的文件權限是由.htaccess決定。當Apache試圖讀取某一(yī)目錄下的文件時,它將先查閱".htaccess"文件中(zhōng)所列的訪問控製(zhì)指令,並(bìng)執行相應(yīng)的操(cāo)作。

  Mime 的文件定義類(lèi)型是(shì)由下(xià)麵的兩句所決定(dìng):

  TypesConfig /etc/mime.types
  MIMEMagicFile share/magic
  AddLanguage en .en

  此參(cān)數可以增加對多種語言的支持。

  ErrorLog /var/log/httpd/error_log
  LogLevel warn
  CustomLog /var/log/httpd/access_log common

  上麵(miàn)這些代碼代表(biǎo)了客戶機(jī)訪問服務器的(de)一些日誌文(wén)件。

  完成全局設(shè)置後,我們還要針(zhēn)對(duì)每個目錄(lù)的權限進行特定的配置。

  3.目錄(lù)權限(xiàn)的配置

  我們隻以一個目錄為例,其它的路徑可以類推。

  <Directory /home/*/public_html>
  AllowOverride FileInfo AuthConfig Limit
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  <Limit GET POST OPTIONS PROPFIND>
  Order allow,deny
  Allow from all
  </Limit>
  <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Order deny,allow
  Deny from all
  </Limit>
  </Directory>

  這一段定義了(le)/home/*/public_html目錄下可以或禁(jìn)止進行的文件操作,以及(jí)客戶機的受限(xiàn)範圍。

  4.虛擬主(zhǔ)機配置

  虛擬主機配置是Apache最精(jīng)彩的地方之一,很多的ASP也(yě)是利用(yòng)Apache這個(gè)特性來(lái)提(tí)供優質服(fú)務(wù)的。

  <VirtualHost www.virt.com>
  SSLDisable
  ServerAdmin webmaster@virt.com
  DocumentRoot /var/httpd/virt
  ScriptAlias /cgi-bin/ /var/httpd/virt/cgi-bin/
  ServerName www.virt.com
  ErrorLog logs/virt-error.log
  TransferLog logs/virt-access.log
  </VirtualHost>

  我們(men)可以看(kàn)到它的(de)語法和真正(zhèng)主機設置相(xiàng)差甚小(xiǎo),因(yīn)此不再介紹。

關(guān)鍵詞:Apache,Web服務器

閱讀本文後您有什(shí)麽感想? 已有 人給出評(píng)價!

  • 6 歡迎喜歡
  • 263 白癡
  • 5 拜托
  • 5 哇
  • 9 加油
  • 4 鄙視