綠色資源網(wǎng):您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|論壇轉(zhuǎn)帖|廠商大全

綠色資源網(wǎng)

技術(shù)教程
您的位置:首頁(yè)服務(wù)器類Web服務(wù)器 → 用Apache架設(shè)Web服務(wù)器

用Apache架設(shè)Web服務(wù)器

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

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

  安裝

  首先我們要介紹Apache的安裝過程。

  第一,先到http://www.apache.org下載最新版本的Apache。如果是在Windows下,把該文件下載在C盤,C盤在Linux中對(duì)應(yīng)于/dev/hda1。

  第二,進(jìn)入Linux,并以 root 的身份登錄并進(jìn)行掛接文件系統(tǒng)。

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

  因?yàn)槲覀儗pache的源碼放置于c盤,所以現(xiàn)在要先把它掛載至新建的目錄/c里面。

  第三,把此程序拷貝到/tmp下,以便操作。

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

  注意:Linux下所有的文件名都是區(qū)分大小寫的。接下來,我們就要把源碼從壓縮包中解壓縮出來。相應(yīng)的命令為:

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

  解壓縮后進(jìn)入存放源碼的目錄,使用編譯配置腳本進(jìn)行環(huán)境的設(shè)置。

  #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把配置文件保存在/etc/httpd目錄中,其它文件(例如HTML手冊(cè)文檔、CGI-BIN目錄)都保存在 /home/httpd目錄下。也告訴Apache將最常用的模塊作為DSO模塊編譯。DSO就是Dynamic Shared Object的縮寫。通過DSO支持的模式編譯Apache,能夠隨時(shí)從Apache里面增加和移除模塊,而不需要重新編譯它,具體的模塊見下文。  

  第四,在執(zhí)行./configure 之后,配置腳本會(huì)自動(dòng)生成 Makefile。這時(shí),我們就可以開始編譯源碼了。

  #make

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

  #rpm -ivh apache*.rpm
 

  安裝Apache的RPM包。這種方法較為簡(jiǎn)單,因此不再詳細(xì)介紹。

  配置

  安裝完Apache后,開始它的配置工作。在其主目錄下有httpd.conf、access.conf、srm.conf 及Magic等四個(gè)文件,其中httpd.conf是主要的配置文件,access.conf是訪問控制配置文件,srm.conf 則是對(duì)于Web主機(jī)的文件資源的配置文件。Magic是針對(duì)mime模塊的設(shè)置,我們一般不改動(dòng)這個(gè)文件。

  在Apache運(yùn)行的時(shí)候,它先調(diào)用httpd.conf,接著是srm.conf,最后是access.conf。在較新的Apache發(fā)行版本中,它建議srm.conf和access.conf 兩個(gè)文件的內(nèi)容為空,把設(shè)置選項(xiàng)完全存放在httpd.conf之中,這樣會(huì)更加有利于服務(wù)器的安全性。

  下面就以httpd.conf來開始我們神奇的Web網(wǎng)絡(luò)世界。

  1.全局環(huán)境變量的設(shè)置

  httpd.conf是以全局環(huán)境變量的設(shè)置開始的。我們將要一步步介紹其具體的參數(shù)。

  ServerType standalone
  ServerRoot "/etc/httpd"
 

  第一行"ServerType"指令,說明Apache是以一個(gè)獨(dú)立的(Standalone)守護(hù)進(jìn)程的身份運(yùn)行于后臺(tái),還是由另外的后臺(tái)守護(hù)進(jìn)程(Xinetd)在接到HTTP請(qǐng)求的時(shí)候喚醒。對(duì)于正式的互聯(lián)網(wǎng)站點(diǎn)來說,standalone可以提供比xinetd方式更快的客戶端響應(yīng)速度。因此我們選用standalone模式。第二行代碼介紹了該服務(wù)器配置文件的相對(duì)根目錄,一般是/etc/httpd,我們?cè)诎惭b時(shí)已經(jīng)設(shè)置好。請(qǐng)注意,不要在此目錄最后加"/"。

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

  LockFile在安裝Apache時(shí)指定選用了USE_FCNTL _SERIALIZED_ACCEPT,USE_FLOCK_SERIALIZED_ACCEPT等參數(shù)。作為Apache連接出現(xiàn)錯(cuò)誤的記錄文件,它會(huì)把進(jìn)程的PID值自動(dòng)加在該文件中。請(qǐng)注意,該文件應(yīng)保存在本地的硬盤中。PidFile記錄著每次服務(wù)器運(yùn)行時(shí)的進(jìn)程號(hào)。ScoreBoardFile是某些特定系統(tǒng)上服務(wù)程序中父子進(jìn)程通訊記錄的文件。

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

  以上兩項(xiàng)是指定服務(wù)器資源及控制權(quán)限的文件,在默認(rèn)情況下并不使用它們。

  Timeout 300
  KeepAlive On
  MaxKeepAliveRequests 100
  KeepAliveTimeout 15

這四項(xiàng)設(shè)定了服務(wù)器的連接屬性。第一行說明了TCP中ack的響應(yīng)時(shí)間為300秒;第二項(xiàng)表示是否保持服務(wù)響應(yīng)的連接;緊接著的兩項(xiàng)定義了這種連接的最大響應(yīng)數(shù)目及響應(yīng)時(shí)間。如果MaxKeepAliveRequests設(shè)為0,那它便是unlimited,當(dāng)然這就要考慮系統(tǒng)的承載能力了。

  MinSpareServers 5
  MaxSpareServers 20
  StartServers 8
 

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

  MaxClients 150
  MaxRequestsPerChild 100
 

  以上兩行定義了同一時(shí)刻最多的客戶連接數(shù)目和每個(gè)連接的子進(jìn)程數(shù)。

  Listen 3000
  Listen 12.34.56.78:80
  BindAddress *
 

  這里定義了服務(wù)程序監(jiān)聽來自以上IP、端口號(hào)的Request。由于BindAddress只支持*(代表所有的IP),所以產(chǎn)生了Listen這個(gè)參數(shù)以便更靈活地處理客戶機(jī)的響應(yīng)。

  ExtendedStatus On/Off
 

  這條指令說明了是否跟蹤服務(wù)程序所產(chǎn)生的擴(kuò)展?fàn)顟B(tài)。

  以下是對(duì)于DSO的支持,分別利用了LoadModule、AddModule參數(shù)。我們可以閱讀表1,加載自己所需要的模塊。

  2.主服務(wù)器設(shè)置

  下面設(shè)置主服務(wù)器(非虛擬服務(wù)主機(jī))。

  Port 80
 

  這個(gè)參數(shù)給出了服務(wù)程序開啟監(jiān)聽的端口號(hào)為80。

  User nobody
  Group nobody
  ServerAdmin root@localhost
  ServerName localhost
 

  上面的第一、二行代表了打開服務(wù)進(jìn)程的用戶名和用戶組名。第三、四行則是管理員的郵件地址和此服務(wù)器的主機(jī)名。

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

  面前兩行定義了網(wǎng)頁(yè)的主目錄和首頁(yè)名稱。UserDir給出了用戶的絕對(duì)路徑,也就是說明個(gè)人主頁(yè)存放路徑。

  AccessFileName .htaccess

  此指令指定了每個(gè)目錄下的文件權(quán)限是由.htaccess決定。當(dāng)Apache試圖讀取某一目錄下的文件時(shí),它將先查閱".htaccess"文件中所列的訪問控制指令,并執(zhí)行相應(yīng)的操作。

  Mime 的文件定義類型是由下面的兩句所決定:

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

  此參數(shù)可以增加對(duì)多種語(yǔ)言的支持。

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

  上面這些代碼代表了客戶機(jī)訪問服務(wù)器的一些日志文件。

  完成全局設(shè)置后,我們還要針對(duì)每個(gè)目錄的權(quán)限進(jìn)行特定的配置。

  3.目錄權(quán)限的配置

  我們只以一個(gè)目錄為例,其它的路徑可以類推。

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

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

  4.虛擬主機(jī)配置

  虛擬主機(jī)配置是Apache最精彩的地方之一,很多的ASP也是利用Apache這個(gè)特性來提供優(yōu)質(zhì)服務(wù)的。

 ?。糣irtualHost 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>

  我們可以看到它的語(yǔ)法和真正主機(jī)設(shè)置相差甚小,因此不再介紹。

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

閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!

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