Apache服務(wù)架設(shè)
一、Apache服務(wù)總覽:
1、所需要的軟件包:httpd httpd-devel httpd-manual
2、端口:80(http) 443(https)
3、主配置文件:/etc/httpd/* 、/var/www/*
4、默認(rèn)主頁(yè)目錄:/var/www/html
5、腳本: /etc/init.d/httpd
6、守護(hù)進(jìn)程:/usr/sbin/httpd
7、與Apache服務(wù)相關(guān)的Selinux環(huán)境:
1)system_u:object-r:httpd_config_t
/etc/httpd/conf和/etc/httpd/conf.d 下的文件
2)system_u:object_r:httpd_log_t
/etc/httpd/logs中的日志文件。
3)system_u:object_r:httpd_modules_t
httpd服務(wù)使用的相關(guān)模塊
4)網(wǎng)頁(yè)內(nèi)容及網(wǎng)頁(yè)目錄的環(huán)境:
System_u:object_r:httpd_sys_content_t:如果不是這個(gè)頁(yè)面將無(wú)法訪問。
另:對(duì)于目錄,Other組要有訪問和可執(zhí)行權(quán)限。
設(shè)置Selinux環(huán)境:
Chcon -R —reference=/var/www/html /var/www/html/data
Restorecon -R /var/www/html
建議網(wǎng)站目錄都放到/var/www/html防止因?yàn)镾elinux造成問題。
二、Apache配置文件的簡(jiǎn)單實(shí)現(xiàn):
1、 相關(guān)配置文件修改:/etc/httpd/conf/httpd.conf
1)、ServerRoot”/etc/httpd” 默認(rèn)配置文件的存放目錄;
2)、Timeout 120 客戶端訪問超時(shí)時(shí)間120秒;
3)、Listen 80 監(jiān)聽80端口;
4)、ServerAdmin root@rhel.com 設(shè)置管理員郵箱;
5)、ServerName www.station53.com服務(wù)器主機(jī)名,可以使DNS域名,也可以是IP地址;
6)、DocumentRoot /var/www/html 網(wǎng)頁(yè)默認(rèn)存放目錄;
7)、DirectoryIndex index.html index.htm 設(shè)置主頁(yè)文件的名字;
2、建立主頁(yè)文件:
在/var/www/html目錄建立主頁(yè)文件index.html并寫上寫內(nèi)容。
3、啟動(dòng)相關(guān)服務(wù):
chkconfig httpd on
service httpd restart
4、測(cè)試自己的服務(wù)器:
三、用戶個(gè)人主頁(yè)的實(shí)現(xiàn):
通過配置使我們每個(gè)用戶都有一個(gè)主頁(yè)可以通過http://www.station53.com/~Username訪問的主頁(yè)。
1、 主配置文件的修改:
備注:
1) 目錄權(quán)限設(shè)置:
AllowOverride:用于定義位于每個(gè)目錄下的.htaccess(訪問控制)文件中的指令類型。如果要禁用的話:AllowOverride None。
Options MultiViews:定義目錄使用那些特性。
Indexes:允許目錄瀏覽,但沒有指定訪問目錄下的那個(gè)文件,而其目錄下不存在默認(rèn)文檔時(shí)Apache以超文本形式返回目錄中的文件和子目錄列表。
MulitiViews:允許內(nèi)容協(xié)商的多重試圖。當(dāng)訪問http://127.0.0.1/icons/a時(shí),服務(wù)會(huì)查找目錄下的所有a.*的文件,如果目錄下有就會(huì)顯示這個(gè)文件,而不是報(bào)錯(cuò)信息。
All:包含了除MulitiViews之外的所有特性,如果沒有Options語(yǔ)句默認(rèn)為All。
ExecCGI:允許執(zhí)行CGI腳本。
FollowSymLinks:在該目錄中可以使用符號(hào)鏈接。
Includes:允許服務(wù)端包含功能。
IncludesNoExec:允許服務(wù)端包含功能但不允許執(zhí)行CGI腳本。
2)缺省訪問權(quán)限和allow、deny順序:
allow,deny規(guī)則,先判斷allow,后判斷deny,沖突時(shí),后面的有效;
例子如下:
2)個(gè)人網(wǎng)站主目錄的設(shè)置及文件的建立:
在個(gè)人目錄/home/username目錄下創(chuàng)建public_html目錄。
建立自己的主頁(yè),然后在瀏覽器輸入“http://URL/~username”即可,
備注:注意public_html目錄和里面的文件的Selinux環(huán)境參數(shù),如果有問題請(qǐng)按照上面講的調(diào)整。
四、虛擬主機(jī)的設(shè)置:
www.station53.com 下面我們?cè)陂_通www.server53.com(默認(rèn)已經(jīng)設(shè)計(jì)好 和www.client53.com
1、配置DNS:
1)編輯/var/namde/chroot/etc/named.conf,編輯好文件如下:
2)在/var/named/chroot/var/named生成:server53.com.zone和client53.com.zone兩個(gè)文件:
3)修改權(quán)限及文件內(nèi)容:
4)在/var/named目錄下建立server53.com.zone、client53.com.zone的連接文件,并調(diào)整好權(quán)限:
5)重新啟動(dòng)DNS服務(wù)并測(cè)試新建立的域名。
2、編輯/etc/httpd/conf/httpd.conf文件:
3、重新啟動(dòng)Apache服務(wù),測(cè)試設(shè)置是否滿足要求:
1)在/var/www/html目錄下分別建立server53 和 client53兩個(gè)目錄,并添加主頁(yè)文件,處理其相關(guān)的Selinux環(huán)境設(shè)置。
2)重新啟動(dòng)Apache服務(wù)測(cè)試:
??什么www.station53.com 和www.server53.com顯示的一樣?
所以我們要繼續(xù)修改/etc/httpd/conf/httpd.conf,添加如下段內(nèi)容:
在/var/www/html目錄下建立station53目錄,并建立主頁(yè)文件處理selinux環(huán)境。
一旦打開虛擬主機(jī)功能,那么每個(gè)域名都要在虛擬主機(jī)項(xiàng)目相應(yīng)的位置添加與之對(duì)應(yīng)的項(xiàng)目,否則默認(rèn)訪問第一個(gè)虛擬主機(jī)的設(shè)置。
通過了?OK!!
五、主頁(yè)的用戶認(rèn)證的設(shè)置:(以redhat的個(gè)人目錄為例。
1、配置httpd.conf文件,使目標(biāo)目錄支持認(rèn)證:
目標(biāo)目錄在httpd.conf中要有AllowOverride AuthConfig 項(xiàng),默認(rèn)開啟用戶個(gè)人主頁(yè)后,用戶個(gè)人目錄支持這個(gè)設(shè)置。
2、建立.htaccess文件,建立在站點(diǎn)目錄下,這里就是/home/redhat/public_html目錄下。
3、建立.passwords文件:
4、測(cè)試效果:
肯定OK,注意不要寫錯(cuò),我在配置.htaccess的時(shí)候密碼文件放置位置的名字寫錯(cuò)了,一直在驗(yàn)證密碼,怎么都跳不過去,呵呵。注意這兩個(gè)文件都是隱藏文件名字前面帶點(diǎn)。
Apache 的 httpd.conf 詳解
Apache語(yǔ)法檢查工具
service httpd configtest
apachectl configtest
httpd -t
ServerRoot /usr/local ServerRoot用于指定守護(hù)進(jìn)程httpd的運(yùn)行目錄,httpd在啟動(dòng)之后將自動(dòng)將進(jìn)程的當(dāng)前目錄改變?yōu)檫@個(gè)目錄,因此如果設(shè)置文件中指定的文件或目錄是相對(duì)路徑,那么
真實(shí)路徑就位于這個(gè)ServerR oot定義的路徑之下。
ScoreBoardFile /var/run/ht
ServerRoot “/usr/local“
ServerRoot用于指定守護(hù)進(jìn)程httpd的運(yùn)行目錄,httpd在啟動(dòng)之后將自動(dòng)將進(jìn)程的當(dāng)前目錄改變?yōu)檫@個(gè)目錄,因此如果設(shè)置文件中指定的文件或目錄是相對(duì)路徑,那么真實(shí)路徑就位于這個(gè)ServerR oot定義的路徑之下。
ScoreBoardFile /var/run/httpd.scoreboard
httpd使用ScoreBoardFile來(lái)維護(hù)進(jìn)程的內(nèi)部數(shù)據(jù),因此通常不需要改變這個(gè)參數(shù),除非管理員想在一臺(tái)計(jì)算機(jī)上運(yùn)行幾個(gè)Apache服務(wù)器,這時(shí)每個(gè)Apache服務(wù)器都需要獨(dú)立的設(shè)置文
件htt pd.conf,并使用不同的ScoreBoardFile。
#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf
這兩個(gè)參數(shù)ResourceConfig和AccessConfig,就用于和使用srm.conf和access.conf設(shè)置文件的老版本Apache兼容。如果沒有兼容的需要,可以將對(duì)應(yīng)的設(shè)置文件指定為/dev/null,這將表示不存在其他設(shè)置文件,而僅使用httpd.conf一個(gè)文件來(lái)保存所有的設(shè)置選項(xiàng)。
PidFile /var/run/httpd.pid
PidFile指定的文件將記錄httpd守護(hù)進(jìn)程的進(jìn)程號(hào),由于httpd能自動(dòng)復(fù)制其自身,因此系統(tǒng)中有多個(gè)httpd進(jìn)程,但只有一個(gè)進(jìn)程為最初啟動(dòng)的進(jìn)程,它為其他進(jìn)程的父進(jìn)程,對(duì)這個(gè)進(jìn)程發(fā)送信號(hào)將影響所有的httpd進(jìn)程。PidFILE定義的文件中就記錄httpd父進(jìn)程的進(jìn)程號(hào)。
Timeout 300
Timeout定義客戶程序和服務(wù)器連接的超時(shí)間隔,超過這個(gè)時(shí)間間隔(秒)后服務(wù)器將
斷開與客戶機(jī)的連接。
KeepAlive On
在HTTP 1.0中,一次連接只能作傳輸一次HTTP請(qǐng)求,而KeepAlive參數(shù)用于支持HTTP 1.1版本的一次連接、多次傳輸功能,這樣就可以在一次連接中傳遞多個(gè)HTTP請(qǐng)求。雖然只有較
新的瀏覽器才支持這個(gè)功能,但還是打開使用這個(gè)選項(xiàng)。
MaxKeepAliveRequests 100
MaxKeepAliveRequests為一次連接可以進(jìn)行的HTTP請(qǐng)求的最大請(qǐng)求次數(shù)。將其值設(shè)為0將支持在一次連接內(nèi)進(jìn)行無(wú)限次的傳輸請(qǐng)求。事實(shí)上沒有客戶程序在一次連接中請(qǐng)求太多的頁(yè)面
,通常達(dá)不到這個(gè)上限就完成連接了。
KeepAliveTimeout 15
KeepAliveTimeout測(cè)試一次連接中的多次請(qǐng)求傳輸之間的時(shí)間,如果服務(wù)器已經(jīng)完成了一次請(qǐng)求,但一直沒有接收到客戶程序的下一次請(qǐng)求,在間隔超過了這個(gè)參數(shù)設(shè)置的值之后,服
務(wù)器就斷開連接。
ThreadsPerChild 50
設(shè)置服務(wù)器使用進(jìn)程的數(shù)目。
# 這是以服務(wù)器的響應(yīng)速度為準(zhǔn)的, 數(shù)目太大則會(huì)變慢
MaxRequestsPerChild 30
使用子進(jìn)程的方式提供服務(wù)的Web服務(wù),常用的方式是一個(gè)子進(jìn)程為一次連接服務(wù),這樣造成的問題就是每次連接都需要生成、退出子進(jìn)程的系統(tǒng)操作,使得這些額外的處理過程占據(jù)
了計(jì)算機(jī)的大量處理能力。因此最好的方式是一個(gè)子進(jìn)程可以為多次連接請(qǐng)求服務(wù),這樣就不需要這些生成、退出進(jìn)程的系統(tǒng)消耗,Apache就采用了這樣的方式,一次連接結(jié)束后,子進(jìn)程并不
退出,而是停留在系統(tǒng)中等待下一次服務(wù)請(qǐng)求,這樣就極大的提高了性能。但由于在處理過程中子進(jìn)程要不斷的申請(qǐng)和釋放內(nèi)存,次數(shù)多了就會(huì)造成一些內(nèi)存垃圾,就會(huì)影響系統(tǒng)的穩(wěn)定性,并且影響系統(tǒng)資源的有效利用。因此在一個(gè)副本處理過一定次數(shù)的請(qǐng)求之后,就可以讓這個(gè)子進(jìn)程副本退出,再?gòu)脑嫉膆tt pd進(jìn)程中重新復(fù)制一個(gè)干凈的副本,這樣就能提高系統(tǒng)的穩(wěn)定性。這樣,每個(gè)子進(jìn)程處理服務(wù)請(qǐng)求次數(shù)由MaxRe questPerChild定義。 缺省的設(shè)置值為30,為了安全,設(shè)置為零
#Listen 3000
#Listen 12.34.56.78:80
#BindAddress *
Listen參數(shù)可以指定服務(wù)器除了監(jiān)視標(biāo)準(zhǔn)的80端口之外,還監(jiān)視其他端口的HTTP請(qǐng)求。
由于linux系統(tǒng)可以同時(shí)擁有多個(gè)IP地址,因此也可以指定服務(wù)器只聽取對(duì)某個(gè)BindAddress< /B>的IP地址的HTTP請(qǐng)求。如果沒有配置這一項(xiàng),則服務(wù)器會(huì)回應(yīng)對(duì)所有IP的請(qǐng)求。
即使使用了BindAddress參數(shù),使得服務(wù)器只回應(yīng)對(duì)一個(gè)IP地址的請(qǐng)求,但是通過使用擴(kuò)展的Listen參數(shù),仍然可以讓HTTP守護(hù)進(jìn)程回應(yīng)對(duì)其他IP地址的請(qǐng)求。此時(shí)Listen參數(shù)的用法
與上面的第二個(gè)例子相同。這種比較復(fù)雜的用法主要用于設(shè)置虛擬主機(jī)。此后可以用VirtualHost參數(shù)定義對(duì)不同IP的虛擬主機(jī),然而這種用法是較早的HTTP 1.0標(biāo)準(zhǔn)中設(shè)置虛擬主機(jī)的方法,每針對(duì)一個(gè)虛擬主機(jī)就需要一個(gè)IP地址,實(shí)際上用處并不大。在HTTP 1.1中,增加了對(duì)單IP地址多域名的虛擬主機(jī)的支持,使得虛擬主機(jī)的設(shè)置具備更大的意義。
#ExtendedStatus On
Apache服務(wù)器可以通過特殊的HTTP請(qǐng)求,來(lái)報(bào)告自身的運(yùn)行狀態(tài),打開這個(gè)ExtendedStatus 參數(shù)可以讓服務(wù)器報(bào)告更全面的運(yùn)行狀態(tài)信息
ServerAdmin you@your.address
配置文件中應(yīng)該改變的也許只有ServerAdmin, 這一項(xiàng)用于配置WWW服務(wù)器的管理員的email地址,這將在HTTP服務(wù)出現(xiàn)錯(cuò)誤的條件下返回給瀏覽器,以便讓W(xué)eb使用者和管理員聯(lián)系,
報(bào)告錯(cuò)誤。習(xí)慣上使用服務(wù)器上的webmaster作為WWW服務(wù)器的管理員,通過郵件服務(wù)器的別名機(jī)制,將發(fā)送到webmaster 的電子郵件發(fā)送給真正的Web管理員。
ServerName localhost
缺省情況下,并不需要指定這個(gè)ServerName參數(shù),服務(wù)器將自動(dòng)通過名字解析過程來(lái)獲得自己的名字,但如果服務(wù)器的名字解析有問題(通常為反向解析不正確),或者沒有正式的
DNS名字,也可以在這里指定I P地址。當(dāng)ServerName設(shè)置不正確的時(shí)候,服務(wù)器不能正常啟動(dòng)。通常一個(gè)Web服務(wù)器可以具有多個(gè)名字,客戶瀏覽器可以使用所有這些名字或IP地址來(lái)訪問這臺(tái)服務(wù)器,但在沒有定
億恩科技地址(ADD):鄭州市黃河路129號(hào)天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|