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