亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網(wǎng)站 > WEB服務 > 正文

Linux Apache Web 服務器終極教程

2020-10-28 19:00:15
字體:
供稿:網(wǎng)友

APACHE系統(tǒng)介紹 

根據(jù)著名的WWW服務器調(diào)查公司所作的調(diào)查,世界上百分之五十以上的WWW服務器都在使用Apache,是世界排名第一的WEB服務器。Apache的誕生極富有戲劇性。當NCSA WWW服務器項目停頓后,那些使用NCSA WWW服務器的人們開始交換他們用于該服務器的補丁程序,他們也很快認識到成立管理這些補丁程序的論壇是必要的。就這樣,誕生了Apache Group,后來這個團體在NCSA的基礎上創(chuàng)建了Apache。 

Apache的主要特征是: 

. 可以運行上所有計算機平臺; 

. 支持最新的HTTP 1.1協(xié)議; 

. 簡單而強有力的基于文件的配置; 

. 支持通用網(wǎng)關(guān)接口CGI; 

. 支持虛擬主機; 

. 支持HTTP認證; 

. 集成Perl腳本編程語言; 

. 集成的代理服務器; 

. 具有可定制的服務器日志; 

. 支持服務器端包含命令(SSI) 

. 支持安全Socket層(SSL) 

. 用戶會話過程的跟蹤能力; 

. 支持FastCGI; 

. 支持Java Servlets。 


安裝Apache 


下面我們就開始漫漫征服Apache之旅,通過循序漸進的需求實例,一步步地學習使用Apache,從入門到精通。 



系統(tǒng)需求 

運行Apache不需要太多的計算資源。它在有6-10MB硬盤空間和8MB RAM的Linux系統(tǒng)上運行得很好。然而,只運行Apache可能不是你想做的事情。更可能的是,你想運行Apache來提供WWW服務、啟動CGI進程以及充分利用所有WWW能夠提供的令人驚奇的功能。在這種情況下,你需要提供反映負載要求的額外的磁盤空間和內(nèi)存空間。也就是說,如果僅僅是啟動WWW服務并不需要太多的系統(tǒng)資源,但是想要能為大量的客戶提供服務就需要更多的系統(tǒng)資源。 

獲取軟件 

你可以在http://www.apache.org中獲得Apache的最新版。而幾乎所有的Linux發(fā)行版中均包含有Apache軟件包,你也可以直接使用它。 

需要注意的是,Apache軟件包有兩種:一種是源代碼,下載后需要自己重新編譯;另一種是可執(zhí)行文件,下載后只需解壓就可以使用。 



安裝軟件 

你可以通過以下三種方法安裝Apache服務器。 


1.如果你安裝的Linux版本中帶用Apache的話,就在選擇所要安裝的服務器的時候,將httpd這個服務選上,Linux安裝程序?qū)⒆詣油瓿葾pache的安裝工作,并做好基本的配置。 

2.使用可執(zhí)行文件軟件包,這比較適合那些對編譯工作不是太熟悉的初級用戶,因為它相對比較簡單。 

下載軟件包apache_1.2.4.e.tar.gz 

tar xvzf apache_1.2.4.e.tar.gz 

這就完成了安裝工作,簡單吧! 

如果你使用的是RedHat Linux的話,你也可以下載apache_1.2.4.rpm軟件安裝包,然后使用rpm -ivh apache_1.2.4.rpm命令安裝。 

3.如果你想把Apache服務器充分利用起來的話,就一定要自己編譯Apache定制其功能。 

下載包含Apache源代碼的軟件包apache_1.2.4.tar.gz; 然后用tar命令將它解開; 將當前目錄改變?yōu)锳pache源代碼發(fā)行版的src目錄; 將配置樣本文件(Configuration.tmpl)復制為Configuration文件; 

編輯Configuration文件中的配置選項: 

Makefile配置選項:一些編譯選項: 

. "CC="一行指定用什么編譯軟件編譯,一般為"CC=gcc"; 

. 如果需要將額外的標志(參數(shù))指定給C編譯軟件,可以使用: 

EXTRA_CFLAGS= 

EXTRA_LFLAGS= 

. 如果系統(tǒng)需要特殊的庫和包含文件,可以在這里指定它們: 

EXTRA_LIBS= 

EXTRA_INCLUDES= 

. 如果你要改變代碼優(yōu)化設置的話,你須將下面一句去掉注釋,然 

后改成你所需要的值: 

#OPTIM=-O2 

Rule配置選項:用來決定需要什么功能,一般情況下無需改變。 

模塊配置:模塊是Apache的組成部分,它為Apache內(nèi)核增加新功能。通過使用模塊配置,可以自定義在Apache服務器中需要什么功能,這個部分也是Apache靈活性的表現(xiàn)。模塊配置行如下所示: 

AddModule modules/standard/mod_env.o 

如果你需要Apache服務器具備什么功能,就將那個模塊用AddModule語句加到配置文件Configuration中去。 

下表列出了Apache的模塊功能: 

模塊名 功能 缺省 

mod_access 提供基于主機的訪問控制命令 y 

mod_actions 能夠運行基于MIME類型的CGI腳本或HTTP請求方法 y 

mod_alias 能執(zhí)行URL重定向服務 y 

mod_asis 使文檔能在沒有HTTP頭標的情況下被發(fā)送到客戶端 y 

mod_auth 支持使用存儲在文本文件中的用戶名、口令實現(xiàn)認證 y 

mod_auth_dbm 支持使用DBM文件存儲基本HTTP認證 n 

mod_auth_mysql 支持使用MySQL數(shù)據(jù)庫實現(xiàn)基本HTTP認證 n 

mod_auth_anon 允許以匿名方式訪問需要認證的區(qū)域 y 

mod_auth_external支持使用第三方認證 n 

mod_autoindex 當缺少索引文件時,自動生成動態(tài)目錄列表 y 

mod_cern_meta 提供對元信息的支持 n 

mod_cgi 支持CGI y 

mod_dir 能夠重定向任何對不包括尾部斜杠字符命令的請求 y 

mod_env 使你能夠?qū)h(huán)境變量傳遞給CGI或SSI腳本 n 

mod_expires 讓你確定Apache在服務器響應請求時如何處理Expires y 

mod_headers 能夠操作HTTP應答頭標 y 

mod_imap 提供圖形映射支持 n 

mod_include 使支持SSI n 

mod_info 對服務器配置提供了全面的描述 y 

mod_log_agent 允許在單獨的日志文件中存儲用戶代理的信息 n 

mod_log_config 支持記錄日志 y 

mod_log_referer 提供了將請求中的Referer頭標寫入日志的功能 n 

mod_mime 用來向客戶端提供有關(guān)文檔的元信息 y 

mod_negotiation 提供了對內(nèi)容協(xié)商的支持 y 

mod_setenvif 使你能夠創(chuàng)建定制環(huán)境變量 y 

mod_speling 使你能夠處理含有拼寫錯誤或大小寫錯誤的URL請求 n 

mod_status 允許管理員通過WEB管理Apache y 

mod_unique_id 為每個請求提供在非常特殊的條件下保證是唯一的標識 n 


在src目錄下執(zhí)行:". /configure"; 

編譯Apache:執(zhí)行命令"make"; 

根據(jù)機器性能的不同,經(jīng)歷一段5-30分鐘的編譯,就大功告成了。 

將編譯好的可執(zhí)行文件httpd復制到/etc/httpd/bin目錄下; 

將Apache發(fā)行版的配置文件:access.conf、httpd.conf、mime.types、srm.conf文件復制到/etc/httpd/conf目錄下。到此為止,安裝完成。 


一些說明 

在Red Hat Linux 6.0中,Apache將自己的所有配置文件和日志文件放在了"/etc/httpd"目錄下,其中"/etc/httpd/conf"下為配置文件,"/etc/httpd/log"下為日志文件。 

同時,它將建立"/home/httpd"目錄,并在其下建立三個子目錄:"html/":在這個目錄下存放HTML(主頁)文件;"cgi-bin/":在這個目錄下可以存放一些CGI程序;"icons/":在這個目錄下是服務器自帶的一些圖標。 

配置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"目錄下即可。 

下面介紹一些最主要的配置選項的含義,以便大家用最小的精力、最小的配置準備好服務器。 


httpd.conf 

tpd.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服務進程來服務該請求。另外還需要告訴主服務器進程偵聽的特定端口地址,使用命令: 

Port [number] (缺省值為80) 

inetd模式 

inetd是偵聽有小于1024的端口連接請求的Internet守護進程(一個服務器進程)。與前面的方法不同,當客戶系統(tǒng)發(fā)出到WWW服務器的連接請求時,inetd啟動一個WWW服務器進程,由此進程服務此請求,完成服務后即退出。如果選擇通過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 <inetd的進程ID> 

在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 


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)入的主頁是在指定目錄下文?quot;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 


access.conf的配置 

access.conf文件用來設置WWW站點上諸如文件、目錄和腳本項目的訪問權(quán)限。該文件的第一段非注釋部分如下: 

<Directory /home/httpd/html> 

Option Indexes Includes ExecCGI FollowSymLink 

AllowOverride None 

Order allow , deny 

allow from all 

</Directory> 

大家應該注意到,這一個部分是以<Directory /home/httpd/html>開始,以</Directory>結(jié)束的。這表示在其中間的部分都是針對指定目錄&#0;&#0;"/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"文件中設定的權(quán)限是否可以被在文件".htaccess"中設定的權(quán)限覆蓋。它有兩個參數(shù): 

All 準許覆蓋; 

None 不準許覆蓋。 

3.Order命令:用來設定誰能從這個服務器取得控制。它也有兩個參數(shù): 


allow 可以取得控制; 

deny 禁止取得控制。 

現(xiàn)在我們一起來看看關(guān)于目錄"/home/httpd/html"的設置的含義:它使得這個目錄,如果不存在index.htm文件時,列出目錄信息以供選擇,準許SSI,允許執(zhí)行CGI程序,開啟了動態(tài)連接。它不允許再使用在文件".htaccess"中設定來覆蓋這里所設置的權(quán)限。使所有的人都可以取得控制。 

該文件的第二段非注釋部分如下: 

<Directory /home/httpd/cgi-bin> 

Option ExecCGI 

AllowOverride None 

</Directory> 

這個表示目錄"/home/httpd/cgi"的設置為,當前目錄下可以執(zhí)行CGI程序。不允許再使用在文件".htaccess"中設定來覆蓋這里所設置的權(quán)限。 

需要說明的是,不同的LINUX系統(tǒng)中,可以在這個文件中看到的信息不完全相同,但是根據(jù)這里給出的信息,大家可以參照命令的解釋自行理解文件中的設置,以及根據(jù)自己的需要進行相應的修改。 

4.4 使新的配置生效 

在上面,我們可能已經(jīng)根據(jù)新的需求更改了相應的配置選項,如果我們要使得這個新的配置立即生效。我們就必須重新啟動WEB服務進程。在LINUX中,我們可以十分方便地使用命令行來使得WEB服務進程重啟。 

/etc/rc.d/init.d/httpd restart 

五、為用戶開辟個人主頁空間 


如果我們利用了LINUX系統(tǒng)架設了一臺WEB服務器,我們不僅可以存放公司的主頁,而且還可以為公司的每一個員工提供一塊個人主頁的空間。 

首先,為需要個人主頁空間的員工在LINUX上開設一個帳號。這樣,它就擁有了一個用戶主目錄"/home/用戶帳號名"。 

addusr 用戶帳號名 

passwd 用戶帳號名 

在用戶主目錄下建立一個目錄"public_html",然后為其設置相應的權(quán)限。 

cd ~用戶帳號名 

mkdir public_html 

chmod 755 public_html 

確認在srm.conf文件中的UserDir命令設置的是public_html目錄。讓員工將自己的個人主頁上傳到自己用戶主目錄下的public_html目錄中。 

現(xiàn)在就可以使用"http://www.company.com/~用戶帳號名"來訪問員工的個人主頁了。 

用Apache實現(xiàn)虛擬主機服務 


什么是虛擬主機服務 

所謂的虛擬主機服務就是指將一臺機器虛擬成多臺WEB服務器。舉個例子來說,一家公司想從事提供主機代管服務,它為其它企業(yè)提供WEB服務。那么它肯定不是為每一家企業(yè)都各準備一臺物理上的服務器,而是用一臺功能較強大的大型服務器,然后用虛擬主機的形式,提供多個企業(yè)的WEB服務,雖然所有的WEB服務就是這臺服務器提供的,但是讓訪問者看起來卻是在不同的服務器上獲得WEB服務一樣。 


具體地說,就是,我們可以利用虛擬主機服務將兩個不同www.company1.comwww.company2.com的主頁內(nèi)容都存放在同一臺主機上。而訪問者只需輸入公司的域名就可以訪問到它想得到的主頁內(nèi)容。 用Apache設置虛擬主機服務通常可以采用兩種方案:基于IP地址的虛擬主機和基于名字的虛擬主機,下面我們分別介紹一下它們的實現(xiàn)方法。以便大家在具體的應用中能夠選擇最合適的實現(xiàn)方法。 


設置實現(xiàn)基于IP地址的虛擬主機服務實現(xiàn)前提 

這種方式需要在機器上設置IP別名,也就是在一臺機器的網(wǎng)卡上綁定多個IP地址去為多個虛擬主機服務。而且要使用這項功能還要確定在你的LINUX內(nèi)核中必須支持IP別名的設置,否則你還必須重新編譯內(nèi)核。 

下面舉一個擁有兩個虛擬主機的服務設置,以供參考。 

2.配置步驟 

假設,我們用來實現(xiàn)虛擬主機服務的機器,首先已經(jīng)為自己提供了WEB服務,現(xiàn)在將為新的一家www.company1.com提供虛擬主機服務。 

規(guī)劃IP地址:為虛擬主機申請新的IP地址。(假設本機IP地址為202.101.2.1) 

www.company1.com 202.101.2.2 

2) 讓ISP作好相應的域名解析工作。 

3) 為網(wǎng)卡設置IP別名: 

/sbin/ifconfig eth0:0 202.101.2.2 netmask 255.255.255.0 

4) 重新設置"/etc/httpd/conf/httpd.conf",在文件中加入: 

<VirtualHost 202.101.2.2> 

ServerAdmin webmaster@yourdomain.com 

DocumentRoot /home/httpd/www.company1.com 

ServerName www.company1.com 

ErrorLog /var/log/httpd/www.company1.com/error.log 

</VirtualHost> 

5)建立相應的目錄。 

mkdir /home/httpd/www.company1.com 

mkdir /var/log/httpd/www.company1.com/error.log 

6)將相應的主頁內(nèi)容存放在相應的目錄中即可。 

3.不利因素 

這種虛擬主機的實現(xiàn)方法有一個嚴重的不足,那就是,每增加一個虛擬主機,就必須增加一個IP地址。而由于IP地址空間已經(jīng)十分緊張,所以通常情況下是無法取得這么多的IP地址的。而且從某種意義上說,這也是一種IP地址浪費。設置實現(xiàn)基于名字的虛擬主機服務而基于名字的虛擬主機服務,是比較適合使用的一種方案。因為它不需要更多的IP地址,而且配置簡單,無須什么特殊的軟硬件支持。現(xiàn)代的瀏覽器大都支持這種虛擬主機的實現(xiàn)方法。當然,這也就是指一些早期的客戶端瀏覽器也許不支持這種虛擬主機的實現(xiàn)方法。 

正是以上原因,我們沒有理由不使用基于名字的虛擬主機服務而使用基于IP地址的虛擬主機服務。配置基于名字的虛擬主機服務需要修改配置文件?quot;/etc/httpd/conf/httpd.conf",在這個配置文件中增加以下內(nèi)容。 

NameVirtualHost 202.101.2.1 

<VirtualHost 202.101.2.1> 

ServerAdmin webmaster@yourdomain.com 

DocumentRoot /home/httpd/www.company1.com 

ServerName www.company1.com 

ErrorLog /var/log/httpd/www.company1.com/error.log 

</VirtualHost> 

<VirtualHost 202.101.2.1> 

ServerAdmin webmaster@yourdomain.com 

DocumentRoot /home/httpd/www.company2.com 

ServerName www.company2.com 

ErrorLog /var/log/httpd/www.company2.com/error.log 

</VirtualHost> 

也就是在基于IP地址的配置基礎上增加一句:NameVirtualHost 202.101.2.1而已。在本例中,為了體現(xiàn)只需要增加一次,所以特別地設置了兩個虛擬主機服務。 

最后也是建立相應的目錄,將主頁內(nèi)容放到相應的目錄中去就可以了。 


配置CGI 

1. 什么是CGI 

CGI是獨立于語言的網(wǎng)關(guān)接口規(guī)范,它實際上可以用任何廣泛流行的應用程序開發(fā)語言來實現(xiàn),包括C、C++、Perl、Shell腳本甚至Java。 

WEB服務器從客戶端得到某個URL,它告訴WEB服務器,必須運行一個CGI外部應用程序。那么WEB服務器啟動這一應用程序,等待它完成并返回輸出結(jié)果。最后,它將此應用程序的輸出結(jié)果傳輸給另一端的WEB客戶。 

2. 為CGI配置Apache 

那么如何使Apache能處理CGI請求呢?我們必須通過相應的配置過程告知Apache在哪里存儲CGI程序,指明CGI程序的擴展等,以下我們逐一介紹一下設置的內(nèi)容與步驟。 

創(chuàng)建存儲CGI程序的目錄 

創(chuàng)建集中的CGI程序目錄只是建立CGI環(huán)境的開始。如果要考慮提高安全 

性的話,應將集中的CGI程序目錄保存在DocumnetRoot目錄外,使得訪問者不能直接訪問CGI程序。 第一步:在DocumentRoot目錄外創(chuàng)建一個目錄,然后將所有的CGI程序都集中存放在這個目錄下。例如,你可創(chuàng)建一個/home/httpd/public/apps的目錄作為CGI程序的大本營。 

第二步:為CGI程序目錄創(chuàng)建別名,也就是編輯配置文件httpd.conf,加入: 

ScriptAlias /cgi-bin/ /home/httpd/public/apps 

這樣做后,當客戶www.xxx.com/cgi-bin/li.cgi時,WEB服務器就會自動執(zhí)行WEB服務器上的/home/httpd/public/apps/li.cgi文件。 

第三步:為CGI目錄設置合適的權(quán)限,一般是只允許Apache有讀取和執(zhí)行的權(quán)限但沒有寫的權(quán)限。 

允許用戶訪問cgi-bin 

我們已經(jīng)在4.5小節(jié)中介紹了如何給用戶開辟個人主頁空間,但如果你的 

用戶需要使他的主頁更具有活力,往往會向你申請cgi-bin訪問服務。下面我們就介紹一個Apache服務器為用戶提供的兩種cgi-bin訪問方法。 

1)使用Directory或DirectoryMatch容器 

當在配置文件srm.conf中用UserDir命令被賦值為目錄名稱時,Apache就 

把它作為用戶WWW站點的頂層目錄。例如: 

UserDir Public_html 

當Apachewww.xxx.com/~user的請求,就到/home/user/Public_html取出主頁發(fā)送給客戶。 

如果要為每個用戶添加CGI支持就在Apache的配置文件access.conf中添加下列配置: 

<DirectoryMatch "/home/[a-z]+/public_html/cgi-bin"> 

Options ExecCGI 

AddHandler cgi-script .cgi .pl 

</DirectoryMatch> 

注:將DirectoryMatch換成Directory亦可 

在這種方法中,Apache服務www.xxx.com/~user/cgi-bin請求翻譯成為了/home/user/Public_html/cgi-bin/,并允許執(zhí)行任何帶有正確擴展名(.cgi或.pl)的CGI程序。 

使用ScriptAliasMatch命令 

通過使用ScriptAliasMatch命令,也可以為每個用戶添加CGI支持。例如: 

ScriptAliasMatch ~([a-z]+)/cgi-bin/(.*) /home/$1/public_html/cgi-bin/$2 

這個命令將用戶名與$1相匹配,其中$1與~([a-z]+)相等。將/cgi-bin/后面的任何內(nèi)容與$2相匹配,其中$2與(.*)相等。 

這個設置也就實現(xiàn)www.xxx.com/~user/cgi-bin/xxx.cgi請求解釋為: 

/home/user/Public_html/cgi-bin/xxx.cgi 

那么大家想一想,如果你想將這個請求解釋為: 

/home/httpd/public/apps/xxx.cgi 

該如何設置呢?對,應該是: 

ScriptAliasMatch ~([a-z]+)/cgi-bin/(.*) /home/httpd/public /apps/$2 

3. Apache為CGI提供的環(huán)境變量 

Apache服務器提供了許多環(huán)境變量可以用于CGI程序的編寫,了解它們也一定有助于寫出充分利用Apache的CGI程序,所以在此也對此作一簡單介紹。 


服務器變量 

服務器變量由Apache設置用來通知CGI程序有關(guān)Apache的情況。通過使 

用這些變量,CGI程序能確定有關(guān)服務器的不同信息:Apache的版本,管理員的E-Mail地址等。 


SERVER_SOFTWARE 

這個變量是WWW服務器Apache的版本號,它的值形如:Apache/Version,如Apache/1.3; 


GATEWAY_INTERFACE 

這個變量的值是當前CGI規(guī)范的版本號,其值形如:CGI/1.1; 

SERVER_ADMIN 

如果在httpd.conf文件中有設置站點管理員的e-mail地址的話,這個變量就會存放著這個e-mail地址; 


DOCUMENT_ROOT 

這個變量存放在是被訪問的WWW站點的DocumentRoot命令指定的值。 

客戶請求變量 

Apache提供的有關(guān)客戶請求方的環(huán)境變量有許多,以下只是有選擇性地介紹一些最常見的。 


SERVER_NAME 

此變量可以告訴CGI程序它訪問的是哪一個主機。這個值可以是IP地址也可以是完整的主機名; 


HTTP_ACCEPT 

此變量被賦值為客戶所能接受的MIME類型的列表,如:HTTP_ACCEPT=image/gif; 


HTTP_ACCEPT_CHARSET 

此變量被賦值為客戶所能接受的字符集,如: 


HTTP_ACCEPT_CHARASET=iso-8859-1.,*,utf-8; 


HTTP_ACCEPT_LANGUAGE 

此變量被賦值為客戶所能接受的語言,如:HTTP_ACCEPT_LANGUAGE=en; 


HTTP_ACCEPT_AGENT 

這個變量指定發(fā)出請求的系統(tǒng)正在運行的瀏覽器類型和操作系統(tǒng); 

 HTTP_PORT:服務端口; 

REMOTE_HOST:客戶端的IP地址或IP名稱信息; 


REMOTE_PORT:客戶端的端口號; 

4. 一點提示 

若干年來,通過網(wǎng)關(guān)接口(CGI)已成為服務器端應用程序開發(fā)的事實標準。但隨著時間的推移,發(fā)現(xiàn)在沉重的CGI負擔下許多WWW服務器系統(tǒng)的表現(xiàn)不盡人意。這是因為CGI規(guī)范存在瓶頸問題:每當客戶系統(tǒng)請求CGI應用程序時,WWW服務器就必須啟動新的CGI進程,直到完成任務后結(jié)束進程。這在負載不高時,會工作正常。但是,在高負載時,繁多的進程將成為性能的瓶頸問題。 


所以現(xiàn)在開始出現(xiàn)新的標準來彌補這一不足,其中FastCGI是很有前途的一種新的開放式標準。 


你可以在Apache中通過添加mod_fastcgi.c模塊來支持FastCGI。 


解讀Apache日志 


當你一步步地看到這里的時候,相信你的WWW站點已經(jīng)建好,并且已經(jīng)在Internet上展現(xiàn)出來了。這時你可能就會關(guān)心誰造訪過你的站點,或者想知道你的Apache服務器現(xiàn)在的運行狀態(tài)與性能如何。下面我們一起通過解讀Apache的日志來實現(xiàn)這個偉大的愿望。 

一、盯著Apache服務器 

Apache允許通過WWW監(jiān)視服務器的配置信息與運行狀態(tài)。 


1.觀看配置信息 


如果你的Apache象缺省配置一樣加入了mod_info模塊的話,你就可以通過訪問http://localhost/server-info查看服務器信息。 

2.使用狀態(tài)頁 

如果你的Apache象缺省配置一樣加入了mod_status模塊的話,你就可以 

通過訪問http://localhost/apache-status查看服務器的運行狀態(tài)信息,其中包括: 

¨ 服務器系統(tǒng)的當前時間; 

¨ 服務器最近一次重啟時間; 

¨ 服務器啟動后的運行時間; 

¨ 到目前為止服務的訪問總數(shù); 

¨ 到目前為止傳輸?shù)淖止?jié)總數(shù); 

¨ 服務請求的子進程數(shù); 

¨ 空閑子進程數(shù); 

¨ 每個進程狀態(tài)、子進程服務的請求數(shù)以及該子進程傳輸?shù)淖止?jié)總數(shù); 

¨ 每秒平均請求數(shù)、每秒傳輸?shù)淖止?jié)數(shù)、每次請求平均傳輸字節(jié)數(shù); 

¨ 目前每個子進程CPU占用及Apache的總的CPU占用率; 

¨ 當前主機及處理的請求。 


二、什么是日志文件 


日志文件是Apache工作的記錄,Apache包括了mod_log_config模塊,它用來記錄日志。在缺省情況下,它用通用日志格式CLF規(guī)范來寫。CLF日志文件內(nèi)對每個請求均有一個單獨行,形如:host ident anthuser date request status bytes 

其含義如下: 

¨ host&#0;&#0;客戶端主機的全稱域名或IP地址; 

¨ ident&#0;&#0;存放客戶端報告的識別信息; 

¨ authuser&#0;&#0;如果是基于用戶名認證的話,值為用戶名; 

¨ date&#0;&#0;請求的日期與時間; 

¨ request&#0;&#0;客戶端的請求行; 

¨ status&#0;&#0;返回到客戶端的三們數(shù)字的HTTP狀態(tài)碼; 

¨ bytes&#0;&#0;除去HTTP頭標外,返回給客戶端的字節(jié)數(shù)。 


三、分析日志文件 


有了日志文件后,我們可以利用UNIX的一些工具和一此專門的日志分析工具對日志文件進行分析。 


實例一:列出訪問過本網(wǎng)站的主機名或IP: 

對于這個需求,我們可以通過一個Unix的一個腳本語句來完成: 

cat /var/log/httpd/access_log | awk '{print $1}' 

用上面的方法雖然可以得到訪問過本網(wǎng)站的主機名或IP,但是由于有些是多次訪問的,我們希望在上面得到的結(jié)果的基礎上做一些優(yōu)化,使得列出的表中,每個主機只出現(xiàn)一次。我們可以使用: 

cat /var/log/httpd/access_log | awk '{print $1}' | wc -l 

3.當然,我們可以根據(jù)需要選擇第三方提供日志分析工具甚至自己開發(fā)一些日志分析工具來滿足我們的需求。常見的第三方日志分析工具有:WebTrends、Wusage、wwwstat、http-analyze、pwebstats、WebStat Explorer、AccessWatch。 


四、一些提示 

日志一方面是我們分析網(wǎng)站的第一手資料,一方面卻是吞噬大量磁盤空間的罪魁禍首。所以別忘了定期轉(zhuǎn)儲或刪除一些老的日志文件。 

Apache與代理服務器 

代理服務器是位于客戶和客戶要訪問的服務器之間的系統(tǒng)。當客戶機使用URL請求訪問遠程資源時,代理服務器接受該請求并取得該資源以滿足客戶機的請求。在通常情況下,代理服務器是客戶機的服務器,同時也是遠程服務器的客戶。 

代理服務器可以在自己的緩沖區(qū)中存儲被請求的內(nèi)容,當這些信息再次被請求的時候,代理服務器就無需再從遠程服務器上取了,這樣代理服務器就減輕了網(wǎng)絡的瓶頸問題。 

Apache可以配置成為代理服務器。 


一、前向代理服務器和逆向代理服務器 

1.前向代理服務器 

前向代理服務器通常位于用戶主機和要訪問的遠程網(wǎng)絡之間。它從遠程服務器取得所要求的資源,然后返回給用戶,同時存在磁盤上,以供下次使用。 

在這種情況下,客戶端的主機知道它們正在使用代理服務器,因為每個主機都必須配置為使用代理服務器。 

例如,必須告訴WWW瀏覽器使用代理服務器,它才能使用代理服務器。所有的遠程請求都通過代理服務器傳輸。 

這類代理服務器也稱為緩沖代理服務器。逆向服務器也可以緩沖數(shù)據(jù),但它的作用愉好與前向服務器相反。 

2.逆向代理服務器 

逆向代理服務器位于互聯(lián)網(wǎng)資源前面,逆向服務器從原始服務器找到被請求的資源,并反它返回給用戶主機。 

與前向代理服務器不同的是,逆向代理服務器的用戶并不知道它們連接的是代理服務器而不是資源服務器本身。其結(jié)構(gòu)如下圖所示: 

二、配置代理服務器 


為了允許Apache作為代理服務器,需要將ProxyRequests設為On,然后根據(jù)你希望代理服務器做什么而增加什么附加配置。無論你希望做什么,你所選的代理配置都應該放入一個特殊?lt;Directory>容器中。 


<Directory proxy:*> 

… 

</Directory> 

實例一:將私有IP網(wǎng)連到互聯(lián)網(wǎng) 

假設私有網(wǎng)上只有一臺計算機被分配了互聯(lián)網(wǎng)上合法的IP地址,這臺計算 

機運行Apache代理服務器,ProxyRequest設置為On,并且不需要附加其他配置,所有請求均可由這臺代理服務器代理服務。 

實例二:讓Apache允當遠程WWW站點的緩沖 

第一步:將ProxyRequest設置為On 

第二步:創(chuàng)建配置如下: 

<Directory proxy:*> 

CacheRoot /www/cache 

CacheSize 1024 

CacheMaxExpire 24 

</Directory> 

這里的意思是設置Cache目錄為/www/cache;大小為1024KB,即1MB;緩沖中的內(nèi)容在24小時后失效。 

實例三:建立鏡像站點(其實這也就是所謂的逆向代理服務器) 

第一步:將ProxyRequest設置為On 

第二步:創(chuàng)建配置如下: 

<Directory proxy:*> 

ProxyPass / www.mot.com / 

CacheRoot /www/cache 

CacheDefaultExpire 24 

</Directory> 

10.3 一些提示 

代理服務器,我們將會在后面的章節(jié)中詳細介紹,這里只是針對Apache的功能介紹的。用Apache作代理服務器的性能并不高,效果并不好。不建議使用。 

超碰91在线观看| a视频免费在线观看| 国产精品91一区| 三级外国片在线观看视频| 亚洲xxxx3d| 日韩欧美在线观看强乱免费| 亚洲国产欧美在线| 日韩久久免费视频| 最新电影电视剧在线观看免费观看| 高清久久久久久| 在线成人av观看| 欧美性极品少妇精品网站| 精品久久久久久无码中文野结衣| 久久久久久久电影| 国产精品538一区二区在线| 亚洲乱码国产乱码精品精可以看| 日韩精品一区二区三区免费视频| 91精品国产91久久久久麻豆 主演| 在线精品国产成人综合| 国产欧美日韩在线一区二区| 欧美女v视频| 欧美黑人巨大videos精品| 美国黑人一级大黄| 一级片在线免费观看视频| 亚洲日韩欧美视频一区| 国产亚洲一区字幕| 国产在线xxxx| 国产91精品久久久| 性生交大片免费全黄| 男人午夜免费视频| 不卡视频免费在线观看| 久久99国产精一区二区三区| 国产精品老熟女视频一区二区| 日韩人妻精品无码一区二区三区| 国内少妇毛片视频| 亚洲一区二区三区不卡国产欧美| 日本高清中文字幕| 91黑人精品一区二区三区| 亚洲人成电影在线| 精品无码一区二区三区| 免费观看成人在线| 亚洲精品国产精品久久清纯直播| 日本欧美爱爱爱| 91蜜桃婷婷狠狠久久综合9色| 最新日韩在线视频| 福利精品一区| 国产剧情在线观看一区| 2023av视频| 又色又爽又黄无遮挡的免费视频| 国产色在线观看| 久久综合色视频| 在线成人免费网站| 激情久久久久久| 久久国产精品免费精品3p| 日韩精品在线免费| 亚洲国产尤物| 日本欧美一区二区三区乱码| 久久久久国产精品人| 在线电影福利片| 伊人网综合在线| 9.1国产丝袜在线观看| 亚洲深夜影院| 亚洲人体一区| 成人精品视频在线观看| 久久精品一二三四| 亚洲欧美日韩精品久久亚洲区| 波多野结衣小视频| 国产精品欧美大片| 久久成人免费电影| 国产无码精品视频| 欧美videossexotv100| eeuss影影院www在线播放| 亚洲无人区一区| 先锋影音欧美性受| 亚洲精品你懂的| 成人短视频在线观看免费| www日韩中文字幕在线看| 黄色在线视频网址| 日韩综合视频在线观看| 99热这里只有精品7| 欧美性xxxxxxxx| 久久综合狠狠综合久久激情| 日韩国产欧美在线视频| 不卡av电影在线| 波多野结衣av在线免费观看| 欧美精品福利在线| 久久精品免视着国产成人| 热99精品视频| 成人免费黄色大片| 亚洲第一黄网| 亚洲国产一区二区三区在线播放| 四虎永久免费网站| 亚洲天堂av免费在线观看| 日韩精品一二三区| 激情欧美一区二区三区中文字幕| 天堂精品一区二区三区| 成人午夜短视频| 超碰在线cao| 青青青伊人色综合久久| 中文字幕区一区二区三| 国产69精品久久久久久| a在线观看免费| 91精品国产高清久久久久久| 蜜桃成人在线| 国产精品黄页免费高清在线观看| 神马电影网我不卡| 精品无人区太爽高潮在线播放| 大尺度在线观看| 国产黄a三级三级三级av在线看| 欧美一级一区二区三区| 中文字幕不卡在线播放| 蜜桃色一区二区三区| 国产欧美精品一区二区三区| 强制捆绑调教一区二区| 99色在线观看| 日本成人免费在线| 91视频这里只有精品| 久久xxxx| 成人拍拍拍在线观看| 超碰在线一区| 久久久777| 亚洲一区图片| 激情综合激情五月| 四虎4hu影库永久地址| 亚洲欧美日韩精品| 波多野结衣乳巨码无在线观看| 亚洲午夜在线电影| 国产三级香港三韩国三级| 人妻激情偷乱视频一区二区三区| 2020国产成人综合网| 国产成+人+亚洲+欧美+综合| 色视频成人在线观看免| 淫视频在线观看| 中文字幕日韩在线观看| 日韩母乳在线| 24小时成人在线视频| 91精品欧美一区二区三区综合在| 中文字幕一区二区三区四区视频| 亚洲国产日韩a在线播放性色| 国产亚洲美州欧州综合国| 久久人妻精品白浆国产| 洋洋av久久久久久久一区| 97在线观看免费视频| 手机在线看片日韩| 女~淫辱の触手3d动漫| 欧美性猛交久久久乱大交小说| 最近在线中文字幕| 国产精品成人69xxx免费视频| 欧美成人一区二区三区片免费| 日本熟伦人妇xxxx| 亚洲成人动漫精品| 高清一区二区三区| 国产毛片毛片| 亚洲专区免费| 日韩在线视频不卡| 久草视频视频在线播放| 亚洲一区美女视频在线观看免费| 亚洲一区二区免费视频| 三级成人在线视频| seseavlu视频在线| 91传媒在线免费观看| 亚洲 小说区 图片区| 一区二区在线免费| 国产精品久久久久久吹潮| 男人天堂视频在线| 欧美国产成人在线| av免费在线观看网址| 国产www视频| 欧美性潮喷xxxxx免费视频看| 欧美激情1区| 国产精品久久免费视频| 亚洲欧美日韩国产另类专区| 欧美日韩精品区| 中文字幕不卡一区| 国产高清在线观看视频| 在线免费观看羞羞视频一区二区| 小向美奈子av| 国产一级视频在线| 亚洲天堂免费看| 亚洲精品四区| 欧美日韩亚洲精品一区二区三区| 欧美日韩中文| 亚洲视频成人| 国产精品视频公开费视频| 666精品在线| 日韩在线伦理| 在线免费观看中文字幕| 精品一区二区三区免费看| 久久精品aaaaaa毛片| av在线天堂| 一级做a爰片久久毛片16| 波多野结衣办公室33分钟| 欧美精品欧美精品系列c| а√在线中文在线新版| 亚洲综合色网站| 欧美特黄一级片| 成人免费视频在线观看| 69国产精品成人在线播放| 精品国产亚洲一区二区三区大结局| 五月综合激情婷婷六月色窝| 一二三区中文字幕| 久久久国产成人精品| 亚洲 欧美 中文字幕| 欧美性受黑人性爽| 九九九在线观看视频| 久久99精品国产99久久| 懂色av一区二区三区| 国产精品第6页| 一本在线高清不卡dvd| 亚洲深夜福利在线观看| 国内精品女同女同一区二区三区| 日本裸体美女视频| 国产激情偷乱视频一区二区三区| 自拍一级黄色片| 青草青草久热精品视频在线网站| 国产乱子夫妻xx黑人xyx真爽| 久久久久久中文| ,一级淫片a看免费| 校园春色亚洲| 中文字幕被公侵犯的漂亮人妻| 国产精品3区| 欧美日韩国产综合一区二区| 男人捅女人免费视频| 精品人妻一区二区三区免费看| 色777狠狠综合秋免鲁丝| 亚洲精品www久久久| 成人av色网站| 欧美日韩专区| 毛片aaaaaa| 国产精品视频一区二区图片| 91美剧网在线播放| 狠狠色狠狠色综合人人| 偷窥自拍欧美色图| 成人ar影院免费观看视频| 欧美日韩一区三区四区| 亚洲国产精品推荐| 97在线看免费观看视频在线观看| 最近中文字幕在线视频| 粉嫩粉嫩芽的虎白女18在线视频| 亚洲一区三区| 精品国产乱码久久久久久老虎| 女人爱爱视频| 91九色视频在线观看| 亚洲欧美日韩色| 91精品中国老女人| 国产麻豆剧果冻传媒视频杜鹃| 亚洲女同女同女同女同女同69| 一级全黄裸体片| 在线观看日韩中文字幕| 777a∨成人精品桃花网| 高清在线视频日韩欧美| 欧美日产在线观看| 中文精品在线观看| 日本三级网站在线观看| 国内精品久久久久国产盗摄免费观看完整版| 国产a级网站| 欧美一进一出视频| 午夜精品久久久久久久久久久久久| 波多野结衣激情| 国产在线精品观看| 欧美成人aa大片| 久久亚洲风情| 久久精品国产亚洲| 欧美一级免费| 精品少妇一区二区三区密爱| 午夜欧美视频在线观看| 美女毛片免费看| 国产精品调教| 26uuu国产| 成人av免费电影网站| 天堂在线资源库| 99精品视频免费| 丝袜美腿精品国产二区| 亚洲一区在线不卡| 一分钟免费观看视频播放www| 精品一区二区三区三区| 伊人一区二区三区| 亚洲欧美电影在线观看| 精品无码国产一区二区三区av| 一区二区三区四区在线不卡高清| 91午夜国产| 青草草在线视频| 五月婷婷一区二区| 精品乱子伦一区二区| 91精品国产高清91久久久久久| 成人永久看片免费视频天堂| 欧美另类videoxo高潮| 日本不卡高清视频一区| 在线天堂www在线国语对白| 欧美国产一区二区| 欧美性猛片xxxxx免费中国| 天天干天天干天天干| 中文字幕九色91在线| 91视频论坛| 91国偷自产一区二区三区的观看方式| 成人动漫在线免费观看| 国产cdts系列另类在线观看| 亚洲欧美在线视频| 国产免费福利视频| 国产精品99久久免费黑人人妻| 久久男人av资源网站| 久草手机视频在线观看| 欧美男人亚洲天堂| 亚洲欧美另类视频| 中文字幕在线天堂| 欧美日韩另类丝袜其他| 无码人妻av免费一区二区三区| 国产精品免费视频久久久| 91麻豆精品久久久久蜜臀| 欧美熟妇精品黑人巨大一二三区| 青青青在线视频播放| 日韩一二三区视频| 雨宫琴音一区二区在线| 精品国产一区二区三区麻豆小说| 婷婷激情五月网| 蜜臀在线免费观看| 男人的天堂av网| 国精产品一区一区三区mba下载| 亚洲深夜福利在线| 欧美激情videoshd| 欧美激情亚洲视频| 岛国大片在线播放| 中文字幕丰满人伦在线| 欧美人与动牲性行为| 中文字幕福利片| 成人黄色国产精品网站大全在线免费观看| 欧美日韩加勒比精品一区| 在线播放/欧美激情|