Linux Apache Web 服務器(續(xù)一)
更新時間:2008年03月15日 18:45:24 作者:
四、配置Apache基礎篇,讓WWW服務器跑起來
Apache服務器軟件的配置文件主要有:“access.conf”:用于設置系統(tǒng)中的存取方式和環(huán)境;“httpd.conf”:用于設置服務器啟動的基本環(huán)境;“srm.conf”:主要用于做文件資源上的設定;“mime.type”:記錄Apache服務器所能識別的MIME格式。
在具體講解之前,我們必須告訴大家,Apache已經(jīng)在安裝時就采用了一系列的缺省值,已經(jīng)讓WWW服務器跑起來了。你只需要將裝上Linux+Apache的主機聯(lián)入Internet,然后將主頁存放到“/home/httpd”目錄下即可。
下面介紹一些最主要的配置選項的含義,以便大家用最小的精力、最小的配置準備好服務器。
4.1 httpd.conf
httpd.conf是主配置文件。它告訴服務器將如何運行。
一、最重要的配置選項ServerType standalone | inetd
這個配置選項指定如何運行WEB服務器。Apache可以使用兩種方法來運
行服務器:standalone(獨立的)和inetd(由inetd運行的)。
standalone參數(shù)表示W(wǎng)EB服務進程以一個單獨的守候進程的方式在后臺偵聽是否有客戶端的請求,如果有就生成一個子進程來為其服務。
inetd參數(shù)表示W(wǎng)EB服務不是以一個單獨的守候進程的形式支持。而是由Inetd這個超級服務器守候進程進行代勞,當它收到一個客戶端的WEB服務請求的時候,再啟動一個WEB服務進程為其服務。
從功能的角度看,這兩種方法幾乎是相同的。但它們之間實際有很大區(qū)別,區(qū)別在于服務器的性能。一個由inted運行的服務器進程在它結(jié)束對請求服務的同時立刻退出。而在standalone模式下,子WWW服務器進程在退出之前要掛起一段時間,這就給它們提供了機會,可以重新用來服務新的請求。
在standalone模式下,不存在對每個請求啟動新進程的開銷,所以它的效率更高;而inetd模式被認為比standalone模式更具安全性。
standalone模式:
此種模式下,WWW服務器偵聽特定端口的連接請求。當客戶機發(fā)出到特
定端口地址的連接請求時,主服務器進程啟動子WWW服務進程來服務該請求。如下圖所示:
圖2 獨立服務器
另外還需要告訴主服務器進程偵聽的特定端口地址,使用命令:
Port [number] (缺省值為80)
inetd模式
inetd是偵聽有小于1024的端口連接請求的Internet守護進程(一個服務器進程)。與前面的方法不同,當客戶系統(tǒng)發(fā)出到WWW服務器的連接請求時,inetd啟動一個WWW服務器進程,由此進程服務此請求,完成服務后即退出。如下圖所示:
圖3 由inetd啟動的服務器
如果選擇通過inetd服務器來運行Apache,需要編輯/etc/inetd.conf文件為Apache添加一條新的記錄:
httpd stream tcp nowait httpd /etc/httpd/bin/httpd –f /etc/httpd/conf/httpd.conf
修改了/etc/inetd.conf文件后,就需要修改/etc/services中添加一行
httpd 80/tcp httpd
做完以上修改后,需要重新啟動inetd進程。首先,使用以下命令取得inetd的進程ID:
ps auxw |grep inetd
然后執(zhí)行命令:kill –HUP
在RedHat Linux中,默認是采用inetd服務器來運行Apache,所以只要你在安裝時選擇了httpd,以上工作在安裝時就已經(jīng)代你完成了。
二、其它配置選項
Server Admin命令,用來設置WEB管理員的E-Mail地址。這個地址會出現(xiàn)在系統(tǒng)連接出錯的時候,以便訪問者能夠?qū)⑶闆r及時地告知WEB管理員。
命令格式: Server Admin [you E-Mail address]
例:Server Admin admin@xxx.com
ErrorLog命令,用來指定錯誤記錄文件名稱和路徑。
命令格式: ErrorLog [log filename]
例:ErrorLog /var/httpd/error.log
Timeout命令,只要客戶端超過這里設定的秒數(shù)還沒有完成一個請求的話,服務端將終止這次請求服務。如果網(wǎng)絡速度較慢的話,建議在此設置較大的數(shù)值。以給客戶端更多機會。
命令格式: Timeout [second]
例:Timeout 120
ServerRoot命令,它指定在何處保存服務器的配置、錯誤及日志文件。
命令格式: ServerRoot [fully qualified path name]
例:ServerRoot /etc/httpd
ServerName命令,它配置服務器的Internet主機名
命令格式: ServerName [host name]
例:ServerName www.xxx.com
4.2 srm.conf
srm.conf是資源配置文件,用它來告訴服務器你想在WWW站點上提供什么資源以及在哪里和如何提供它們。
DocumentRoot命令,用來指定主文檔的地址。
命令格式: DocumentRoot [Path]
例:DocumentRoot /home/httpd/html
UserDir命令,用來指定個人主頁的位置。如果你有一個用戶test,那么它主目錄是“/home/test”,當客戶端輸入“http://yourdomain/~test”,系統(tǒng)就會到對應的目錄“/home/test/UserDir/”中去尋找。其中“UserDir”就是在UserDir命令中設置的指定目錄。
命令格式: UserDir [Path]
例: UserDir Public_html
DirectoryIndex命令,用來聲明首頁文件名稱。一般地,我們使用“index.html”或“index.htm”作為首頁的文件名。如果這樣設置后,那么客戶端發(fā)出WEB服務請求時,將首先調(diào)入的主頁是在指定目錄下文件“index.html”或“index.htm”。
命令格式: DirecotryIndex [filename]
例:DirecotryIndex index.html index.htm
ScriptAlias命令,為腳本程序目錄起個別名,具體可見4.7小節(jié)。
命令格式: ScriptAlias [/alias/] [fullly qualified path for script directory]
例: ScriptAlias /cgi-bin/ /home/httpd/cgi-bin
4.3 access.conf的配置
access.conf文件用來設置WWW站點上諸如文件、目錄和腳本項目的訪問權限。該文件的第一段非注釋部分如下:
Option Indexes Includes ExecCGI FollowSymLink
AllowOverride None
Order allow , deny
allow from all
大家應該注意到,這一個部分是以開始,以結(jié)束的。這表示在其中間的部分都是針對指定目錄��“/home/httpd/html”而言的。
1.Option命令有很多的參數(shù),各個參數(shù)的意義如下所示:
All 準許以下所有功能(MultiViews除外);
MultiViews 準許內(nèi)容協(xié)商的Multiviews;
Indexes 若該目錄下無index文件,則準許顯示
該目錄下的文件以供選擇;
IncludesNOEXEC 準許SSI(Server-side Includes),但不可
使用#exec和#include功能;
Includes 準許SSI;
FollowSymLinks 準許符號鏈接到其他目錄;
ExecCGI 準許該目錄下可以使用CGI。
2.而AllowOverride命令則是用來決定是否準許在“access.conf”文件中設定的權限是否可以被在文件“.htaccess”中設定的權限覆蓋。它有兩個參數(shù):
All 準許覆蓋;
None 不準許覆蓋。
3.Order命令:用來設定誰能從這個服務器取得控制。它也有兩個參數(shù):
allow 可以取得控制;
deny 禁止取得控制。
現(xiàn)在我們一起來看看關于目錄“/home/httpd/html”的設置的含義:它使得這個目錄,如果不存在index.htm文件時,列出目錄信息以供選擇,準許SSI,允許執(zhí)行CGI程序,開啟了動態(tài)連接。它不允許再使用在文件“.htaccess”中設定來覆蓋這里所設置的權限。使所有的人都可以取得控制。
該文件的第二段非注釋部分如下:
Option ExecCGI
AllowOverride None
這個表示目錄“/home/httpd/cgi”的設置為,當前目錄下可以執(zhí)行CGI程序。不允許再使用在文件“.htaccess”中設定來覆蓋這里所設置的權限。
需要說明的是,不同的LINUX系統(tǒng)中,可以在這個文件中看到的信息不完全相同,但是根據(jù)這里給出的信息,大家可以參照命令的解釋自行理解文件中的設置,以及根據(jù)自己的需要進行相應的修改。
4.4 使新的配置生效
在上面,我們可能已經(jīng)根據(jù)新的需求更改了相應的配置選項,如果我們要
使得這個新的配置立即生效。我們就必須重新啟動WEB服務進程。在LINUX中,我們可以十分方便地使用命令行來使得WEB服務進程重啟。
/etc/rc.d/init.d/httpd restart
下面介紹一些最主要的配置選項的含義,以便大家用最小的精力、最小的配置準備好服務器。
4.1 httpd.conf
httpd.conf是主配置文件。它告訴服務器將如何運行。
一、最重要的配置選項ServerType standalone | inetd
這個配置選項指定如何運行WEB服務器。Apache可以使用兩種方法來運
行服務器:standalone(獨立的)和inetd(由inetd運行的)。
standalone參數(shù)表示W(wǎng)EB服務進程以一個單獨的守候進程的方式在后臺偵聽是否有客戶端的請求,如果有就生成一個子進程來為其服務。
inetd參數(shù)表示W(wǎng)EB服務不是以一個單獨的守候進程的形式支持。而是由Inetd這個超級服務器守候進程進行代勞,當它收到一個客戶端的WEB服務請求的時候,再啟動一個WEB服務進程為其服務。
從功能的角度看,這兩種方法幾乎是相同的。但它們之間實際有很大區(qū)別,區(qū)別在于服務器的性能。一個由inted運行的服務器進程在它結(jié)束對請求服務的同時立刻退出。而在standalone模式下,子WWW服務器進程在退出之前要掛起一段時間,這就給它們提供了機會,可以重新用來服務新的請求。
在standalone模式下,不存在對每個請求啟動新進程的開銷,所以它的效率更高;而inetd模式被認為比standalone模式更具安全性。
standalone模式:
此種模式下,WWW服務器偵聽特定端口的連接請求。當客戶機發(fā)出到特
定端口地址的連接請求時,主服務器進程啟動子WWW服務進程來服務該請求。如下圖所示:
圖2 獨立服務器
另外還需要告訴主服務器進程偵聽的特定端口地址,使用命令:
Port [number] (缺省值為80)
inetd模式
inetd是偵聽有小于1024的端口連接請求的Internet守護進程(一個服務器進程)。與前面的方法不同,當客戶系統(tǒng)發(fā)出到WWW服務器的連接請求時,inetd啟動一個WWW服務器進程,由此進程服務此請求,完成服務后即退出。如下圖所示:
圖3 由inetd啟動的服務器
如果選擇通過inetd服務器來運行Apache,需要編輯/etc/inetd.conf文件為Apache添加一條新的記錄:
httpd stream tcp nowait httpd /etc/httpd/bin/httpd –f /etc/httpd/conf/httpd.conf
修改了/etc/inetd.conf文件后,就需要修改/etc/services中添加一行
httpd 80/tcp httpd
做完以上修改后,需要重新啟動inetd進程。首先,使用以下命令取得inetd的進程ID:
ps auxw |grep inetd
然后執(zhí)行命令:kill –HUP
在RedHat Linux中,默認是采用inetd服務器來運行Apache,所以只要你在安裝時選擇了httpd,以上工作在安裝時就已經(jīng)代你完成了。
二、其它配置選項
Server Admin命令,用來設置WEB管理員的E-Mail地址。這個地址會出現(xiàn)在系統(tǒng)連接出錯的時候,以便訪問者能夠?qū)⑶闆r及時地告知WEB管理員。
命令格式: Server Admin [you E-Mail address]
例:Server Admin admin@xxx.com
ErrorLog命令,用來指定錯誤記錄文件名稱和路徑。
命令格式: ErrorLog [log filename]
例:ErrorLog /var/httpd/error.log
Timeout命令,只要客戶端超過這里設定的秒數(shù)還沒有完成一個請求的話,服務端將終止這次請求服務。如果網(wǎng)絡速度較慢的話,建議在此設置較大的數(shù)值。以給客戶端更多機會。
命令格式: Timeout [second]
例:Timeout 120
ServerRoot命令,它指定在何處保存服務器的配置、錯誤及日志文件。
命令格式: ServerRoot [fully qualified path name]
例:ServerRoot /etc/httpd
ServerName命令,它配置服務器的Internet主機名
命令格式: ServerName [host name]
例:ServerName www.xxx.com
4.2 srm.conf
srm.conf是資源配置文件,用它來告訴服務器你想在WWW站點上提供什么資源以及在哪里和如何提供它們。
DocumentRoot命令,用來指定主文檔的地址。
命令格式: DocumentRoot [Path]
例:DocumentRoot /home/httpd/html
UserDir命令,用來指定個人主頁的位置。如果你有一個用戶test,那么它主目錄是“/home/test”,當客戶端輸入“http://yourdomain/~test”,系統(tǒng)就會到對應的目錄“/home/test/UserDir/”中去尋找。其中“UserDir”就是在UserDir命令中設置的指定目錄。
命令格式: UserDir [Path]
例: UserDir Public_html
DirectoryIndex命令,用來聲明首頁文件名稱。一般地,我們使用“index.html”或“index.htm”作為首頁的文件名。如果這樣設置后,那么客戶端發(fā)出WEB服務請求時,將首先調(diào)入的主頁是在指定目錄下文件“index.html”或“index.htm”。
命令格式: DirecotryIndex [filename]
例:DirecotryIndex index.html index.htm
ScriptAlias命令,為腳本程序目錄起個別名,具體可見4.7小節(jié)。
命令格式: ScriptAlias [/alias/] [fullly qualified path for script directory]
例: ScriptAlias /cgi-bin/ /home/httpd/cgi-bin
4.3 access.conf的配置
access.conf文件用來設置WWW站點上諸如文件、目錄和腳本項目的訪問權限。該文件的第一段非注釋部分如下:
Option Indexes Includes ExecCGI FollowSymLink
AllowOverride None
Order allow , deny
allow from all
大家應該注意到,這一個部分是以開始,以結(jié)束的。這表示在其中間的部分都是針對指定目錄��“/home/httpd/html”而言的。
1.Option命令有很多的參數(shù),各個參數(shù)的意義如下所示:
All 準許以下所有功能(MultiViews除外);
MultiViews 準許內(nèi)容協(xié)商的Multiviews;
Indexes 若該目錄下無index文件,則準許顯示
該目錄下的文件以供選擇;
IncludesNOEXEC 準許SSI(Server-side Includes),但不可
使用#exec和#include功能;
Includes 準許SSI;
FollowSymLinks 準許符號鏈接到其他目錄;
ExecCGI 準許該目錄下可以使用CGI。
2.而AllowOverride命令則是用來決定是否準許在“access.conf”文件中設定的權限是否可以被在文件“.htaccess”中設定的權限覆蓋。它有兩個參數(shù):
All 準許覆蓋;
None 不準許覆蓋。
3.Order命令:用來設定誰能從這個服務器取得控制。它也有兩個參數(shù):
allow 可以取得控制;
deny 禁止取得控制。
現(xiàn)在我們一起來看看關于目錄“/home/httpd/html”的設置的含義:它使得這個目錄,如果不存在index.htm文件時,列出目錄信息以供選擇,準許SSI,允許執(zhí)行CGI程序,開啟了動態(tài)連接。它不允許再使用在文件“.htaccess”中設定來覆蓋這里所設置的權限。使所有的人都可以取得控制。
該文件的第二段非注釋部分如下:
Option ExecCGI
AllowOverride None
這個表示目錄“/home/httpd/cgi”的設置為,當前目錄下可以執(zhí)行CGI程序。不允許再使用在文件“.htaccess”中設定來覆蓋這里所設置的權限。
需要說明的是,不同的LINUX系統(tǒng)中,可以在這個文件中看到的信息不完全相同,但是根據(jù)這里給出的信息,大家可以參照命令的解釋自行理解文件中的設置,以及根據(jù)自己的需要進行相應的修改。
4.4 使新的配置生效
在上面,我們可能已經(jīng)根據(jù)新的需求更改了相應的配置選項,如果我們要
使得這個新的配置立即生效。我們就必須重新啟動WEB服務進程。在LINUX中,我們可以十分方便地使用命令行來使得WEB服務進程重啟。
/etc/rc.d/init.d/httpd restart
相關文章
Win2003+IIS6.0+php5.2.2+MySQL 5.0.41+ZendOptimizer 3.2.8+php
Win2003+IIS6.0+php5.2.2+MySQL 5.0.41+ZendOptimizer 3.2.8+phpMyAdmin 2.10.1環(huán)境配置安裝教程圖文詳解 ...2007-05-05Windows下Apache+Tomcat7負載均衡配置方法詳解
本文介紹了在WINDOWS環(huán)境下Apache2.4+Tomcat7的負載均衡配置方法2018-12-12壓力測試工具Apache Bench實現(xiàn)原理及用法解析
這篇文章主要介紹了壓力測試工具Apache Bench實現(xiàn)原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08