第十二卷 用Apache架設Web服務器(2 / 3)

StartServers 8

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

MaxClients 150

MaxRequestsPerChild 100

以上兩行定義了同一時刻最多的客戶連接數目和每個連接的子進程數。

Listen 3000

Listen 12.34.56.78:80

BindAddress *

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

ExtendedStatus On/Off

這條指令說明了是否跟蹤服務程序所產生的擴展狀態。

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

2.主服務器設置

下麵設置主服務器(非虛擬服務主機)。

Port 80

這個參數給出了服務程序開啟監聽的端口號為80。

User nobody

Group nobody

ServerAdmin root@localhost

ServerName localhost

上麵的第一、二行代表了打開服務進程的用戶名和用戶組名。第三、四行則是管理員的郵件地址和此服務器的主機名。

DocumentRoot "/home/httpd/html"

DirectoryIndex index.html index.htm index.shtml index.cgi

UserDir public_html

麵前兩行定義了網頁的主目錄和首頁名稱。UserDir給出了用戶的絕對路徑,也就是說明個人主頁存放路徑。

AccessFileName .htaccess

此指令指定了每個目錄下的文件權限是由.htaccess決定。當Apache試圖讀取某一目錄下的文件時,它將先查閱".htaccess"文件中所列的訪問控製指令,並執行相應的操作。

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

TypesConfig /etc/mime.types

MIMEMagicFile share/magic

AddLanguage en .en

此參數可以增加對多種語言的支持。

ErrorLog /var/log/httpd/error_log

LogLevel warn

CustomLog /var/log/httpd/access_log common

上麵這些代碼代表了客戶機訪問服務器的一些日誌文件。

完成全局設置後,我們還要針對每個目錄的權限進行特定的配置。

3.目錄權限的配置

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

<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>

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

4.虛擬主機配置

虛擬主機配置是Apache最精彩的地方之一,很多的ASP也是利用Apache這個特性來提供優質服務的。

<VirtualHost www.virt.com>

SSLDisable

ServerAdmin [email protected]

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>

我們可以看到它的語法和真正主機設置相差甚小,因此不再介紹。

實例

最後以我自己的Apache(httpd.conf)為例來結束我們的講解。

ServerType standalone

Port 80

Listen 80

Listen 1024

User wwwrun

Group wwwrun

ServerAdmin [email protected]

ServerRoot /etc/httpd

ErrorLog logs/error_log

TransferLog logs/access_log

PidFile logs/httpd.pid

ServerName www.wudi.com

MinSpareServers 3

MaxSpareServers 20

StartServers 3

如圖1所示。

圖1 虛擬主機1

<VirtualHost www.wudi1.com :80>

SSLDisable

ServerAdmin [email protected]

DocumentRoot /var/httpd/wudi1