明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Apache 使用基礎(chǔ)(建議入門者仔細看看)

[摘要]Apache是目前世界上最經(jīng)常使用的Web服務(wù)器.對于Linux用戶來說,也是最容易使用的 Web服務(wù)器,而且,它是免費的.實際上,如果你僅僅是想要用Apache提供基本的Web頁面服務(wù), 那么你可能根本不需要調(diào)整任何配置.但是,在另一方面, Apache是一個十分強大的程序, 能夠提供許多專業(yè)的...
Apache是目前世界上最經(jīng)常使用的Web服務(wù)器.對于Linux用戶來說,也是最容易使用的 Web服務(wù)器,而且,它是免費的.實際上,如果你僅僅是想要用Apache提供基本的Web頁面服務(wù), 那么你可能根本不需要調(diào)整任何配置.但是,在另一方面, Apache是一個十分強大的程序, 能夠提供許多專業(yè)的功能,為了發(fā)揮它的功能, 你還是必須了解一點兒關(guān)于它的配置.

首先, 如果你在一個非Linux的網(wǎng)站上使用Apache,或者你的網(wǎng)站負擔很重(比如,1000 個以上的同時連接),那么,通常你必須重新編譯Apache,這個問題我們不在此處介紹.

(1)開始提供Web服務(wù)

Apache的服務(wù)有兩種方式,即通過inetd的方式或者獨立執(zhí)行httpd的方式.在一般情況 下我們使用獨立執(zhí)行方式. 首先你必須安裝Apache服務(wù)器.通常的Linux 發(fā)行版中都會包含apache的rpm包,可 以用rpm -i 安裝.然后你要測試一下它的正確.隨便取一個HTML文件,命名為index.html, 拷貝到/home/httpd/html目錄下,然后以根用戶身份執(zhí)行httpd,接下來,在另一臺機器上 用Browser訪問你這臺機器的IP地址,應(yīng)該能顯示其內(nèi)容.如果不對,檢查你的工作,重來 一次.

Apache缺省的時候使用的頁面文件是index.html,錯誤輸出在/var/log/httpd/,如果 有不正常的問題,察看里面的error_log文件.

許多時候,你需要改變web文件的存放位置,或是為web頁面引入一些cgi服務(wù),為此,你必須 去修改/etc/httpd/conf/srm.conf文件. 首先,你會發(fā)現(xiàn)下面的段落:

DocumentRoot /home/httpd/html

這個句子說明,Apache使用的頁面文件存放在/home/httpd/html,所以如果你要改變web 的存放路徑就應(yīng)該修改這里.

另一個相應(yīng)的段落是

DirectoryIndex index.html index.shtml index.cgi

它說明如果有人訪問你的機器,首頁將是在上面定義的路徑下的index.html或者index. shtml,index.cgi.如果你的網(wǎng)站首頁是另外一個名字,修改這一句.

另一個常用的選項是

ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/

它定義在使用CGI程序時,頁面引用的目錄是/cgi-bin/,而實際存放的路徑是 /home/httpd/cgi-bin/

(2)利用apache做Web Proxy

Proxy就是代理.Apache的web 代理是指可以讓客戶端服務(wù)器通過Apache來訪問WWW, 這樣,Apache服務(wù)器將接收來自客戶機器的請求,然后首先去目標站點取得內(nèi)容,并將內(nèi) 容存儲在Apache服務(wù)器上,然后再提交給客戶.以后假如有另一個客戶機需要訪問同樣 的內(nèi)容,Apache就會直接從服務(wù)器硬盤上取得內(nèi)容并且提交給客戶.

要使用Apache Proxy,需要編輯/etc/httpd/conf/httpd.conf,假定你的Apache機器地址 為111.111.111.111,代理端口為8080(通常應(yīng)選擇大于1024的值),需要更改的段落有

Listen 111.111.111.111 8080 #打開8080端口

ProxyRequest On #啟動Proxy服務(wù)

CacheRoot /var/cache/httpd #缺省的Proxy Cache 目錄,必須是可寫的目錄

CacheSize 2000 #Cache的大小,單位是KB,設(shè)大一點兒對你無害,對嗎?

CacheGcInterval 48 #每隔多少小時自動清理cache,把超出cache空間的垃圾刪除

CacheMaxExpire 24 #Cache的最大有效期,或者說Cache最多可以落后于時代多少小時

CacheDefaultExpire 4 #缺省的Cache有效期,單位是小時

ProxyRemote http://something.com http://otherproxy.com:8080/

#對于到http://something.com的訪問,自動去調(diào)用定義在otherproxy.com:8080 的另一個Web Proxy,

#也可以用ProxyRemote ftp http://otherproxy.com:8080/

#定義一個專門對ftp的Proxy級聯(lián).

NoProxy .mydomain.com 111.111.111.0/24

#對于來自111.111.111.1-111.111.111.254的并且指向*.mydomain.com的請求不使用代理,

#這可以使cache只對外部網(wǎng)有效.

接下來,你應(yīng)該設(shè)定僅自己的內(nèi)部用戶才能使用Proxy,這需要修改/etc/httpd/conf/access.conf

加入以下段落:

#Proxy 存取限制
order allow,deny #順序:缺省禁止
allow 111.111.111.0/24 #允許111.111.111.0-111.111.111.254使用,

#/24是指網(wǎng)絡(luò)掩碼是24個1,即255.255.255.0
#段落結(jié)束

現(xiàn)在,重新啟動httpd,然后設(shè)置你的客戶機,將代理服務(wù)器設(shè)成111.111.111.111:8080 就行了.

(3)虛擬主機

Apache的名字虛擬主機是一項不錯的功能,它可以用一臺Apache機器,一個IP來提供多個 頁面,設(shè)定非常簡單,你需要編輯/etc/httpd/conf/httpd.conf,假定有兩個名字: a.domain.com和b.domain.com都指向111.111.111.111(注意,用CNAME產(chǎn)生的兩個重合 的名字只能作一個來算,要作虛擬主機,你必須在域名中定義兩個記錄),那么你可以添 加下面的段落:

Listen 111.111.111.111 80

NameVirtualHost 111.111.111.111:80 #說明111.111.111.111是一臺虛擬主機

#第一個虛擬主機
ServerName a.domain.com #虛擬主機名
DocumentRoot /home/httpd/html/a.domain.com/ #a.domain.com的主頁文件的存放地址
Errorlog /var/log/a.log #錯誤信息記錄
ServerAdmin mastera@domain.com #管理員的郵件地址(可選)
#段落結(jié)束
#第二個 ServerName b.domain.com
DocumentRoot /home/httpd/html/b.domain.com/
Errlog /var/log/b.log
ServerAdmin masterb@domain.com


同上 設(shè)定結(jié)束后,重新啟動httpd.
順便說一句,如果你要給每個虛擬用戶配置CGI腳本怎么辦?簡單啦,就是在有關(guān)這個用戶的

〈VirtualHost〉段落中加入ScriptAlias 段落,例如,這樣:

ScriptAlias /cgi-bin/ /home/httpd/html/a.domain.com/cgi-bin/

這樣以后象http://a.domian.com/cgi-bin/的引用就自動轉(zhuǎn)向到/home/httpd/html/a.domain.com/cgi-bin/

下了。當然象DirectoryIndex之類的也可以放進去,呵呵.

(4)其他說明

現(xiàn)在有一個名叫commanche的程序,可以通過Web頁面對Apache進行管理,不過我還是喜歡直接修改配置文件,有問題比較好處理,呵呵.

另外一個重要的問題是,假如你允許別人使用你的服務(wù)器來發(fā)布web頁面,那么你必須小心, /etc/httpd/conf/httpd.conf中有一個十分重要的段落是

User nobody

Group nobody

它定義系統(tǒng)在httpd存取時使用nobody權(quán)限,這可以避免許多安全性問題,絕對不要將它設(shè)成root!