Apache 使用基礎(chǔ)(建議入門者仔細(xì)看看)
發(fā)表時(shí)間:2024-02-06 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Apache是目前世界上最經(jīng)常使用的Web服務(wù)器.對(duì)于Linux用戶來說,也是最容易使用的 Web服務(wù)器,而且,它是免費(fèi)的.實(shí)際上,如果你僅僅是想要用Apache提供基本的Web頁面服務(wù), 那么你可能根本不需要調(diào)整任何配置.但是,在另一方面, Apache是一個(gè)十分強(qiáng)大的程序, 能夠提供許多專業(yè)的...
Apache是目前世界上最經(jīng)常使用的Web服務(wù)器.對(duì)于Linux用戶來說,也是最容易使用的 Web服務(wù)器,而且,它是免費(fèi)的.實(shí)際上,如果你僅僅是想要用Apache提供基本的Web頁面服務(wù), 那么你可能根本不需要調(diào)整任何配置.但是,在另一方面, Apache是一個(gè)十分強(qiáng)大的程序, 能夠提供許多專業(yè)的功能,為了發(fā)揮它的功能, 你還是必須了解一點(diǎn)兒關(guān)于它的配置.
首先, 如果你在一個(gè)非Linux的網(wǎng)站上使用Apache,或者你的網(wǎng)站負(fù)擔(dān)很重(比如,1000 個(gè)以上的同時(shí)連接),那么,通常你必須重新編譯Apache,這個(gè)問題我們不在此處介紹.
(1)開始提供Web服務(wù)
Apache的服務(wù)有兩種方式,即通過inetd的方式或者獨(dú)立執(zhí)行httpd的方式.在一般情況 下我們使用獨(dú)立執(zhí)行方式. 首先你必須安裝Apache服務(wù)器.通常的Linux 發(fā)行版中都會(huì)包含apache的rpm包,可 以用rpm -i 安裝.然后你要測(cè)試一下它的正確.隨便取一個(gè)HTML文件,命名為index.html, 拷貝到/home/httpd/html目錄下,然后以根用戶身份執(zhí)行httpd,接下來,在另一臺(tái)機(jī)器上 用Browser訪問你這臺(tái)機(jī)器的IP地址,應(yīng)該能顯示其內(nèi)容.如果不對(duì),檢查你的工作,重來 一次.
Apache缺省的時(shí)候使用的頁面文件是index.html,錯(cuò)誤輸出在/var/log/httpd/,如果 有不正常的問題,察看里面的error_log文件.
許多時(shí)候,你需要改變web文件的存放位置,或是為web頁面引入一些cgi服務(wù),為此,你必須 去修改/etc/httpd/conf/srm.conf文件. 首先,你會(huì)發(fā)現(xiàn)下面的段落:
DocumentRoot /home/httpd/html
這個(gè)句子說明,Apache使用的頁面文件存放在/home/httpd/html,所以如果你要改變web 的存放路徑就應(yīng)該修改這里.
另一個(gè)相應(yīng)的段落是
DirectoryIndex index.html index.shtml index.cgi
它說明如果有人訪問你的機(jī)器,首頁將是在上面定義的路徑下的index.html或者index. shtml,index.cgi.如果你的網(wǎng)站首頁是另外一個(gè)名字,修改這一句.
另一個(gè)常用的選項(xiàng)是
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
它定義在使用CGI程序時(shí),頁面引用的目錄是/cgi-bin/,而實(shí)際存放的路徑是 /home/httpd/cgi-bin/
(2)利用apache做Web Proxy
Proxy就是代理.Apache的web 代理是指可以讓客戶端服務(wù)器通過Apache來訪問WWW, 這樣,Apache服務(wù)器將接收來自客戶機(jī)器的請(qǐng)求,然后首先去目標(biāo)站點(diǎn)取得內(nèi)容,并將內(nèi) 容存儲(chǔ)在Apache服務(wù)器上,然后再提交給客戶.以后假如有另一個(gè)客戶機(jī)需要訪問同樣 的內(nèi)容,Apache就會(huì)直接從服務(wù)器硬盤上取得內(nèi)容并且提交給客戶.
要使用Apache Proxy,需要編輯/etc/httpd/conf/httpd.conf,假定你的Apache機(jī)器地址 為111.111.111.111,代理端口為8080(通常應(yīng)選擇大于1024的值),需要更改的段落有
Listen 111.111.111.111 8080 #打開8080端口
ProxyRequest On #啟動(dòng)Proxy服務(wù)
CacheRoot /var/cache/httpd #缺省的Proxy Cache 目錄,必須是可寫的目錄
CacheSize 2000 #Cache的大小,單位是KB,設(shè)大一點(diǎn)兒對(duì)你無害,對(duì)嗎?
CacheGcInterval 48 #每隔多少小時(shí)自動(dòng)清理cache,把超出cache空間的垃圾刪除
CacheMaxExpire 24 #Cache的最大有效期,或者說Cache最多可以落后于時(shí)代多少小時(shí)
CacheDefaultExpire 4 #缺省的Cache有效期,單位是小時(shí)
ProxyRemote http://something.com http://otherproxy.com:8080/
#對(duì)于到http://something.com的訪問,自動(dòng)去調(diào)用定義在otherproxy.com:8080 的另一個(gè)Web Proxy,
#也可以用ProxyRemote ftp http://otherproxy.com:8080/
#定義一個(gè)專門對(duì)ftp的Proxy級(jí)聯(lián).
NoProxy .mydomain.com 111.111.111.0/24
#對(duì)于來自111.111.111.1-111.111.111.254的并且指向*.mydomain.com的請(qǐng)求不使用代理,
#這可以使cache只對(duì)外部網(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個(gè)1,即255.255.255.0
#段落結(jié)束
現(xiàn)在,重新啟動(dòng)httpd,然后設(shè)置你的客戶機(jī),將代理服務(wù)器設(shè)成111.111.111.111:8080 就行了.
(3)虛擬主機(jī)
Apache的名字虛擬主機(jī)是一項(xiàng)不錯(cuò)的功能,它可以用一臺(tái)Apache機(jī)器,一個(gè)IP來提供多個(gè) 頁面,設(shè)定非常簡(jiǎn)單,你需要編輯/etc/httpd/conf/httpd.conf,假定有兩個(gè)名字: a.domain.com和b.domain.com都指向111.111.111.111(注意,用CNAME產(chǎn)生的兩個(gè)重合 的名字只能作一個(gè)來算,要作虛擬主機(jī),你必須在域名中定義兩個(gè)記錄),那么你可以添 加下面的段落:
Listen 111.111.111.111 80
NameVirtualHost 111.111.111.111:80 #說明111.111.111.111是一臺(tái)虛擬主機(jī)
#第一個(gè)虛擬主機(jī)
ServerName a.domain.com #虛擬主機(jī)名
DocumentRoot /home/httpd/html/a.domain.com/ #a.domain.com的主頁文件的存放地址
Errorlog /var/log/a.log #錯(cuò)誤信息記錄
ServerAdmin mastera@domain.com #管理員的郵件地址(可選)
#段落結(jié)束
#第二個(gè) ServerName b.domain.com
DocumentRoot /home/httpd/html/b.domain.com/
Errlog /var/log/b.log
ServerAdmin masterb@domain.com
同上 設(shè)定結(jié)束后,重新啟動(dòng)httpd.
順便說一句,如果你要給每個(gè)虛擬用戶配置CGI腳本怎么辦?簡(jiǎn)單啦,就是在有關(guān)這個(gè)用戶的
〈VirtualHost〉段落中加入ScriptAlias 段落,例如,這樣:
ScriptAlias /cgi-bin/ /home/httpd/html/a.domain.com/cgi-bin/
這樣以后象http://a.domian.com/cgi-bin/的引用就自動(dòng)轉(zhuǎn)向到/home/httpd/html/a.domain.com/cgi-bin/
下了。當(dāng)然象DirectoryIndex之類的也可以放進(jìn)去,呵呵.
(4)其他說明
現(xiàn)在有一個(gè)名叫commanche的程序,可以通過Web頁面對(duì)Apache進(jìn)行管理,不過我還是喜歡直接修改配置文件,有問題比較好處理,呵呵.
另外一個(gè)重要的問題是,假如你允許別人使用你的服務(wù)器來發(fā)布web頁面,那么你必須小心, /etc/httpd/conf/httpd.conf中有一個(gè)十分重要的段落是
User nobody
Group nobody
它定義系統(tǒng)在httpd存取時(shí)使用nobody權(quán)限,這可以避免許多安全性問題,絕對(duì)不要將它設(shè)成root!