當前位置:首頁 » 密碼管理 » apache目錄訪問控制的參數

apache目錄訪問控制的參數

發布時間: 2023-02-24 10:58:03

『壹』 apache伺服器對目錄的默認訪問控制是

「Deny」from「All」。
1、Apache伺服器對目錄的默認訪問控制是「Deny」from「All」。
2、Apache(音譯為阿帕奇)是世界使用排名第一的Web伺服器軟體。它可以運行在幾乎所有廣泛使用的計算機平台上,由於其跨平台和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可通過簡單的API擴充,將Perl/Python等解釋器編譯到伺服器中。

『貳』 apache怎樣配置本地訪問許可權

給指定的文件夾配置對應的訪問許可權是Apache配置中的基礎應用,也是Apache使用者的必備技能之一。

在Apache配置文件中,給指定目錄設置基本的訪問許可權,主要是靠Allow、Deny、Order三個指令的配合使用來實現的。

1.Allow指令

Allow指令的作用與其英文單詞的含義一致,用於設置允許訪問當前目錄(及其子目錄)或文件的用戶范圍。例如,Allow from all表示允許所有用戶訪問。下面,我們參考更多的例子,以幫助理解(Deny與Order用法一致):

<Directory /web>
#只允許IP為123.10.10.2的用戶訪問/web目錄
Allow from 123.10.10.2
</Directory>
<Directory /web>
#只允許IP以10.10開頭的用戶訪問/web目錄
Allow from 10.10
</Directory>
<Directory /web>
#只允許域名為365mini.com的用戶訪問
Allow from 365mini.com
</Directory>
2.Deny指令

同樣的,Deny指令的作用就是「Deny(拒絕)」,用於設置拒絕訪問當前目錄或文件的用戶范圍。例如,Deny from all表示拒絕所有用戶訪問。

3.Order指令

在Apache的配置文件中,Order指令用於控制Allow指令和Deny指令的生效順序。例如,Order Allow,Deny表示當前配置段中的Allow指令先生效,Deny指令後生效。

在Apache中,Allow指令和Deny指令在同一配置段中都可以有多條。不過,對於Allow和Deny指令而言,如果先生效的指令與後生效的指令的作用范圍存在沖突,則起沖突的作用范圍部分以後生效的指令為准。

下面,我們同樣參考幾個具體的例子以幫助大家理解:

<Directory /web>
Order Allow,Deny
Allow from all
Deny from 112.2.10.2
#先允許所有用戶訪問,再拒絕112.2.10.2
#總結:允許除IP為112.2.10.2外的所有用戶訪問
</Directory>
<Directory /web>
Order Allow,Deny
Deny from 112.2.10.2
Allow from all
#先允許所有用戶訪問,再拒絕112.2.10.2
#總結:允許除IP為112.2.10.2外的所有用戶訪問
#(即使Deny指令在Allow指令之前,但是根據Order Allow,Deny語句,仍然先看Allow,再看Deny)
</Directory>
<Directory /web>
Order Deny,Allow
Deny from 112.2.10.2
Allow from all
Deny from 123.10.10.1
#先拒絕112.2.10.2訪問
#再拒絕123.10.10.1訪問
#最後允許所有用戶訪問
#總結:允許所有用戶訪問
#(即使Allow指令在Deny指令前,但是根據Order Deny,Allow語句,仍然先看Deny,再看Allow)
</Directory>

『叄』 怎樣正確配置apache實現用戶個人主頁(linux

Apache伺服器的設置文件位於/usr/local/apache/conf/目錄下,傳統上使用三個配置文件httpd.conf,access.conf和srm.conf,來配置Apache伺服器的行為。

httpd.conf提供了最基本的伺服器配置,是對守護程序httpd如何運行的技術描述;srm.conf是伺服器的資源映射文件,告訴伺服器各種文件的

MIME類型,以及如何支持這些文件;access.conf用於配置伺服器的訪問許可權,控制不同用戶和計算機的訪問限制;這三個配置文件控制著服務

器的各個方面的特性,因此為了正常運行伺服器便需要設置好這三個文件。

除了這三個設置文件之外,Apache還使用mime.types文件用於標識不同文件

對應的MIME類型, magic文件設置不同MIME類型文件的一些特殊標識,使得Apache 伺服器從文檔後綴不能判斷出文件的MIME 類型時,能通過

文件內容中的這些特殊標記來判斷文檔的MIME類型。

bash-2.02$ ls -l /usr/local/apache/conf

total 100

-rw-r--r-- 1 root wheel 348 Apr 16 16:01 access.conf

-rw-r--r-- 1 root wheel 348 Feb 13 13:33 access.conf.default

-rw-r--r-- 1 root wheel 30331 May 26 08:55 httpd.conf

-rw-r--r-- 1 root wheel 29953 Feb 13 13:33 httpd.conf.default

-rw-r--r-- 1 root wheel 12441 Apr 19 15:42 magic

-rw-r--r-- 1 root wheel 12441 Feb 13 13:33 magic.default

-rw-r--r-- 1 root wheel 7334 Feb 13 13:33 mime.types

-rw-r--r-- 1 root wheel 383 May 13 17:01 srm.conf

-rw-r--r-- 1 root wheel 357 Feb 13 13:33 srm.conf.default

事實上當前版本的Apache將原來httpd.conf、srm.conf與access.conf中的所有配置參數均放在了一個配置文件httpd.conf中,只是為了與

以前的版本兼容的原因(使用這三個設置文件的方式來源於NCSA-httpd),才使用三個配置文件。而提供的access.conf和srm.conf文件中沒有

具體的設置。

由於在新版本的Apache中,所有的設置都被放在了httpd.conf中,因此只需要調整這個文件中的設置。以下使用預設提供的httpd.conf為

例,解釋Apache伺服器的各個設置選項。然而不必因為它提供設置的參數太多而煩惱,基本上這些參數都很明確,也可以不加改動運行Apache

伺服器。但如果需要調整Apache伺服器的性能,以及增加對某種特性的支持,就需要了解這些設置參數的含義。

關於Apache伺服器的性能,在Internet上存在很大的爭議,基本上使用Apache的使用者幾乎都不懷疑它的優秀性能,Apache也支撐了很多

著名的高負載的網站,但是在商業機構的評測中,Apache往往得分不高。很多人指出,在這些評測中,商業Web伺服器及其操作系統往往由其專

業公司的工程師進行過性能調整,而Free 的操作系統和Web伺服器往往就使用其預設配置或僅僅作很小的更改。需要指出的是,除了操作系統

的性能調整之外,Apache 伺服器本身的預設配置絕不是最優化和最高效的,而是要適應幾乎所有種類操作系統、所有種類硬體下的設置,多平

台的軟體不可能為特定平台和特定硬體提供最優化的預設配置。因此要使用Apache的時候,性能調整是必不可少的。

在商業評測中忽略了的另一個事實是,評測時往往對不同種類的功能進行比較,例如使用Apache的標准CGI 的性能與ISAPI,NSAPI等服務

器端API比較,事實上Apache伺服器與此可以比較的功能為modperl ,FastCGI,與ASP類似的功能為php等等,只不過由於Apache的開放模式,

這些功能是由獨立的開發組,作為獨立的模塊來實現的。但是在評測中,測試人員沒有加入相應的模塊評測其性能。

HTTP守護進程的運行參數

httpd.conf中首先定義了一些httpd守護進程運行時需要的參數,來決定其運行方式和運行環境。

ServerType standalone

ServerType定義伺服器的啟動方式,預設值為獨立方式standalone,httpd伺服器將由其本身啟動,並駐留在主機中監視連接請求。在

Linux下將在啟動文件 /etc/rc.d/rc.local/init.d/apache中自動啟動Web伺服器,這種方式是推薦設置。

啟動Apache伺服器的另一種方式是inet方式,使用超級伺服器inetd監視連接請求並啟動伺服器。當需要使用inetd啟動方式時,便需要更

改為這個設置,並屏蔽/etc/rc.d/rc.local/init.d/apache文件,以及更改/etc/inetd.conf並重起inetd,那麼Apache就能從inetd中啟動了。

兩種方式的區別是獨立方式是由伺服器自身管理自己的啟動進程,這樣在啟動時能立即啟動伺服器的多個副本,每個副本都駐留在內存中

,一有連接請求不需要生成子進程就可以立即進行處理,對於客戶瀏覽器的請求反應更快,性能較高。而 inetd方式要由inetd發現有連接請求

後才去啟動http伺服器,由於inetd 要監聽太多的埠,因此反應較慢、效率較低,但節約了沒有連接請求時Web伺服器佔用的資源。因此

inetd方式只用於偶爾被訪問並且不要求訪問速度的伺服器上。事實上inetd方式不適合http的突發和多連接的特性,因為一個頁面可能包含多

個圖象,而每個圖象都會引起一個連接請求,即使雖然訪問人數造成教少,但瞬間的連接請求並不少,這就受到inetd性能的限制,甚至會影響

由inetd啟動的其他伺服器程序。

ServerRoot "/usr/local"

ServerRoot用於指定守護進程httpd的運行目錄,httpd在啟動之後將自動將

進程的當前目錄改變為這個目錄,因此如果設置文件中指定的文件或目錄是相對路徑,那麼真實路徑就位於這個ServerRoot定義的路徑之下。
由於httpd會經常進行並發的文件操作,就需要使用加鎖的方式來保證文件操作不沖突,由於NFS文件系統在文件加鎖方面能力有限,因此

這個目錄應該是本地磁碟文件系統,而不應該使用NFS文件系統。

#LockFile /var/run/httpd.lock
LockFile參數指定了httpd守護進程的加鎖文件,一般不需要設置這個參數, Apache伺服器將自動在ServerRoot下面的路徑中進行操作。

但如果ServerRoot為NFS文件系統,便需要使用這個參數指定本地文件系統中的路徑。

PidFile /var/run/httpd.pid
PidFile指定的文件將記錄httpd守護進程的進程號,由於httpd能自動復制其自身,因此系統中有多個httpd進程,但只有一個進程為最初

啟動的進程,它為其他進程的父進程,對這個進程發送信號將影響所有的httpd進程。PidFILE定義的文件中就記錄httpd父進程的進程號。

ScoreBoardFile /var/run/httpd.scoreboard
httpd使用ScoreBoardFile來維護進程的內部數據,因此通常不需要改變這個參數,除非管理員想在一台計算機上運行幾個Apache伺服器,

這時每個Apache伺服器都需要獨立的設置文件httpd.conf,並使用不同的ScoreBoardFile。

#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf

這兩個參數ResourceConfig和AccessConfig,就用於和使用 srm.conf 和 access.conf 設置文件的老版本Apache兼容。如果沒有兼容的需

要,可以將對應的設置文件指定為/dev/null,這將表示不存在其他設置文件,而僅使用httpd.conf 一個文件來保存所有的設置選項。

Timeout 300

Timeout定義客戶程序和伺服器連接的超時間隔,超過這個時間間隔(秒)後伺服器將斷開與客戶機的連接。

KeepAlive On

在HTTP 1.0中,一次連接只能作傳輸一次HTTP請求,而KeepAlive參數用於支持HTTP 1.1版本的一次連接、多次傳輸功能,這樣就可以在一

次連接中傳遞多個HTTP請求。雖然只有較新的瀏覽器才支持這個功能,但還是打開使用這個選項。

MaxKeepAliveRequests 100

MaxKeepAliveRequests為一次連接可以進行的HTTP請求的最大請求次數。將

其值設為0將支持在一次連接內進行無限次的傳輸請求。事實上沒有客戶程序在一次連接中請求太多的頁面,通常達不到這個上限就完成連接了



KeepAliveTimeout 15

KeepAliveTimeout測試一次連接中的多次請求傳輸之間的時間,如果伺服器

已經完成了一次請求,但一直沒有接收到客戶程序的下一次請求,在間隔超過了

這個參數設置的值之後,伺服器就斷開連接

-----------------------------------------------------------------------------------------
MinSpareServers 5
MaxSpareServers 10

在使用子進程處理HTTP請求的Web伺服器上,由於要首先生成子進程才能處理客戶的請求,因此反應時間就有一點延遲。但是,Apache服務

器使用了一個特殊技術來擺脫這個問題,這就是預先生成多個空餘的子進程駐留在系統中,一旦有請求出現,就立即使用這些空餘的子進程進

行處理,這樣就不存在生成子進程造成的延遲了。在運行中隨著客戶請求的增多,啟動的子進程會隨之增多,但這些伺服器副本在處理完一次

HTTP請求之後並不立即退出,而是停留在計算機中等待下次請求。但是空餘的子進程副本不能光增加不減少,太多的空餘子進程沒有處理任務

,也佔用伺服器的處理能力,因此也要限制空餘副本的數量,使其保持一個合適的數量,使得既能及時回應客戶請求,又能減少不必要的進程

數量。

因此就可以使用參數MinSpareServers來設置最少的空餘子進程數量, 以及使用參數MaxSpareServers 來限制最多的空閑子進程數量,多

余的伺服器進程副本就會退出。根據伺服器的實際情況來進行設置,如果伺服器性能較高,並且也被頻繁訪問,就應該增大這兩個參數的設置

。對於高負載的專業網站,這兩個值應該大致相同,並且等同於系統支持的最多伺服器副本數量,也減少不必要的副本退出。

StartServers 5

StartServers參數就是用來設置httpd啟動時啟動的子進程副本數量,這個參數與上面定義的MinSpareServers和MaxSpareServers參數相關

,都是用於啟動空閑子進程以提高伺服器的反應速度的。這個參數應該設置為前兩個值之間的一個數值,小於MinSpareServers和大於MaxS

pareServers都沒有意義。

MaxClients 150

在另一方面,伺服器的能力畢竟是有限的,不可能同時處理無限多的連接請求,因此參數Maxclient s就用於規定伺服器支持的最多並發訪

問的客戶數,如果這個值設置得過大,系統在繁忙時不得不在過多的進程之間進行切換來為太多的客戶進行服務,這樣對每個客戶的反應就會

減慢,並降低了整體的效率。如果這個值設置的較小,那麼系統繁忙時就會拒絕一些客戶的連接請求。當伺服器性能較高時,就可以適當增加

這個值的設置。對於專業網站,應該使用提高伺服器效率的策略,因此這個參數不能超過硬體本身的限制,如果頻繁出現拒絕訪問現象,就說

明需要升級伺服器硬體了。對於非專業網站,不太在意對客戶瀏覽器的反應速度,或者認為反應速度較慢也比拒絕連接好,就也可以略微超過

硬體條件來設置這個參數。

這個參數限制了MinSpareServers和MaxSpareServers的設置,它們不應該大於這個參數的設置。

MaxRequestsPerChild 30

使用子進程的方式提供服務的Web服務,常用的方式是一個子進程為一次連接服務,這樣造成的問題就是每次連接都需要生成、退出子進程

的系統操作,使得這些額外的處理過程占據了計算機的大量處理能力。因此最好的方式是一個子進程可以為多次連接請求服務,這樣就不需要

這些生成、退出進程的系統消耗,Apache就採用了這樣的方式,一次連接結束後,子進程並不退出,而是停留在系統中等待下一次服務請求,

這樣就極大的提高了性能。

但由於在處理過程中子進程要不斷的申請和釋放內存,次數多了就會造成一些內存垃圾,就會影響系統的穩定性,並且影響系統資源的有

效利用。因此在一個副本處理過一定次數的請求之後,就可以讓這個子進程副本退出,再從原始的httpd進程中重新復制一個干凈的副本,這樣

就能提高系統的穩定性。這樣,每個子進程處理服務請求次數由MaxRequestPerChild定義。 預設的設置值為30,

這個值對於具備高穩定性特點的Linux系統來講是過於保守的設置,可以設置為1000甚至更高,設置為0支持每個副本進行無限次的服務處理。

#Listen 3000

#Listen 12.34.56.78:80

#BindAddress *
Listen參數可以指定伺服器除了監視標準的80埠之外,還監視其他埠的HTTP請求。由於FreeBSD系統可以同時擁有多個IP地址,因此也

可以指定伺服器只聽取對某個BindAddress< /B>的IP地址的HTTP請求。如果沒有配置這一項,則伺服器會回應對所有IP的請求。

即使使用了BindAddress參數,使得伺服器只回應對一個IP地址的請求,但是通過使用擴展的Listen參數,仍然可以讓HTTP守護進程回應對

其他IP地址的請求。此時Listen參數的用法與上面的第二個例子相同。這種比較復雜的用法主要用於設置虛擬主機。此後可以用VirtualHost參

數定義對不同IP的虛擬主機,然而這種用法是較早的HTTP 1.0標准中設置虛擬主機的方法,每針對一個虛擬主機就需要一個IP地址,實際上用

處並不大。在HTTP 1.1中,增加了對單IP地址多域名的虛擬主機的支持,使得虛擬主機的設置具備更大的意義。

LoadMole mime_magic_mole libexec/apache/mod_mime_magic.so
LoadMole info_mole libexec/apache/mod_info.so
LoadMole speling_mole libexec/apache/mod_speling.so
LoadMole proxy_mole libexec/apache/libproxy.so
LoadMole rewrite_mole libexec/apache/mod_rewrite.so
LoadMole anon_auth_mole libexec/apache/mod_auth_anon.so
LoadMole db_auth_mole libexec/apache/mod_auth_db.so
LoadMole digest_mole libexec/apache/mod_digest.so
LoadMole cern_meta_mole libexec/apache/mod_cern_meta.so
LoadMole expires_mole libexec/apache/mod_expires.so
LoadMole headers_mole libexec/apache/mod_headers.so
LoadMole usertrack_mole libexec/apache/mod_usertrack.so
LoadMole unique_id_mole libexec/apache/mod_unique_id.so

ClearMoleList
AddMole mod_env.c
AddMole mod_log_config.c
AddMole mod_mime_magic.c
AddMole mod_mime.c
AddMole mod_negotiation.c
AddMole mod_status.c
AddMole mod_info.c
AddMole mod_include.c
AddMole mod_autoindex.c
AddMole mod_dir.c
AddMole mod_cgi.c
AddMole mod_asis.c
AddMole mod_imap.c
AddMole mod_actions.c
AddMole mod_speling.c
AddMole mod_userdir.c
AddMole mod_proxy.c
AddMole mod_alias.c
AddMole mod_rewrite.c
AddMole mod_access.c
AddMole mod_auth.c
AddMole mod_auth_anon.c
AddMole mod_auth_db.c
AddMole mod_digest.c
AddMole mod_cern_meta.c
AddMole mod_expires.c
AddMole mod_headers.c
AddMole mod_usertrack.c
AddMole mod_unique_id.c
AddMole mod_so.c
AddMole mod_setenvif.c

Apache伺服器的一個重要特性就是其模塊化的結構,這不但表現為其能在編
譯時能通過新的模塊加入新的功能,還表現為其模塊可以動態載入入http服務程

序中,而不必載入不需要的模塊。使用Apache的動態載入模塊只需要設置好Load Mole和AddMole參數就可以了,這種特性就是Apache的

DSO(Dynamic Shared Object)特性,然而要想充分使用DSO特性仍然不是一個簡單的事情,不適當的改動這里的設置就可能造成伺服器不能正

常啟動。因此如果不是要增加或減少伺服器提供的功能,就不要改動這里的設置。

上面這些列表就顯示了Linux下的預設Apache伺服器支持的模塊,事實上很
多模塊是沒有必要的,不必要模塊不會被載入內存。模塊可以靜態連接到pache 伺服器內部,也可以這樣動態載入,將Apache的特性都編譯成

動態可載入模塊是該Port的做法,而不是Apache的預設做法,這樣就以犧牲很小的性能的同時,帶來極大的靈活性。

因而動態可載入的能力還是對性能有輕微的影響,因此可以重新編譯Apache,將自己所需要的功能編譯進Apache 伺服器內部,可以讓系統

顯得更為干凈,效率也有輕微的提高。通常僅僅為了這一個目的就重新編譯Apache是沒有必要的,如果需要增加其他特性而重新編譯Apache,

不妨在增加其他模塊的同時將所有的模塊都靜態連接入Apache 伺服器。有的使用者更喜歡動態載入模塊,那麼也不妨全部都使用動態載入模塊



這些模塊都被放置到/usr/local/apache/libexec/目錄下, 每個模塊對應Apache伺服器的一個特性。詳細解釋每個模塊的功能需要相當多

的篇幅,其中比較重要的特性將在後面相應的地方中進行解釋,而具體每個模塊的功能及用法就需要查看Apache的文檔。

#ExtendedStatus On

Apache伺服器可以通過特殊的HTTP請求,來報告自身的運行狀態,打開這個ExtendedStatus 參數可以讓伺服器報告更全面的運行狀態信息


-----------------------------------------------------------------------------------------------------------------
主伺服器設置

Apache伺服器需要各種設置,以定義自己使用各種參數以提供Web服務。對於使用虛擬主機的情況,除了在虛擬主機的定義項中覆蓋的設置

之外(有的設置必須重新定義),這里的設置也是虛擬主機的預設設置。

Port 80

Port定義了Standalone模式下httpd守護進程使用的埠,標准埠是80。這個選項只對於以獨立方式啟動的伺服器才有效,對於以inetd

方式啟動的伺服器則在inetd.conf中定義使用哪個埠。

在Unix下使用80埠需要root許可權,一些管理員為了安全的原因,認為 httpd 伺服器不可能沒有安全漏洞,因而更願意使用普通用戶的權

限來啟動伺服器,這樣就不能使用80埠及其他小於1024的埠,而必須使用大於 1024的埠來啟動httpd,一般情況下8000或8080也是常用

的埠。而Apache httpd伺服器本身可以在以root許可權打開80埠後再改變為普通用戶身份進行運行,這樣就減少了危險性,因而就不需要考

慮這個安全問題。但是如果普通用戶也想安裝配置自己的WWW伺服器,那麼就不得不使用大於1024的埠。

User nobody
Group nogroup

User和Group配置是Apache的安全保證,Apache在打開埠之後,就將其本身設置為這兩個選項設置的用戶和組許可權進行運行,這樣就降低

了伺服器的危險性。這個選項也只用於 Standalone模式,inetd模式在inetd.conf中指定運行Apache的用戶。由於伺服器必須執行改變身份的

setuid()操作,因此初始進程應該具備root許可權,如果是使用非root用戶來啟動Aapche,這個配置就不會發揮作用。

預設設置為nobody和nogroup,這個用戶和組在系統中不擁有文件,保證了伺服器本身和由它啟動的CGI 進程沒有許可權更改文件系統。在某

些情況下,例如為了運行CGI與Unix交互,也需要讓伺服器來訪問伺服器上的文件,如果仍然使用nobody和nogroup,那麼系統中將會出現屬於

nobody的文件,這對於系統安全是不利的,因為其他程序也會以nobody和nogroup的許可權執行某些操作,就有可能訪問這些nobody擁有的文件,

造成安全問題。一般情況下要為Web服務設定一個特定的用戶和組,同時在這里更改用戶和組設置。

ServerAdmin [email protected]
配置文件中應該改變的也許只有ServerAdmin, 這一項用於配置WWW伺服器的管理員的email地址,這將在HTTP服務出現錯誤的條件下返回

給瀏覽器,以便讓Web使用者和管理員聯系,報告錯誤。習慣上使用伺服器上的webmaster作為WWW伺服器的管理員,通過郵件伺服器的別名機制

,將發送到webmaster 的電子郵件發送給真正的Web管理員。

#ServerName new.host.name

預設情況下,並不需要指定這個ServerName參數,伺服器將自動通過名字解析過程來獲得自己的名字,但如果伺服器的名字解析有問題(

通常為反向解析不正確),或者沒有正式的DNS名字,也可以在這里指定IP地址。當ServerName設置不正確的時候,伺服器不能正常啟動。

通常一個Web伺服器可以具有多個名字,客戶瀏覽器可以使用所有這些名字或IP地址來訪問這台伺服器,但在沒有定義虛擬主機的情況下,

伺服器總是以自己的正式名字回應瀏覽器。ServerName就定義了Web伺服器自己承認的正式名字,例如一台伺服器名字(在DNS中定義了A類型)

為exmaple.org.cn,同時為了方便記憶還定義了一個別名(CNAME記錄)為www.exmaple.org.cn,那麼Apache自動解析得到的名字就為

example.org.cn,這樣不管客戶瀏覽器使用哪個名字發送請求,伺服器總是告訴客戶程序自己為 example.org.cn。雖然這一般並不會造成什麼

問題,但是考慮到某一天伺服器可能遷移到其他計算機上,而只想通過更改DNS中的www別名配置就完成遷移任務,所以不想讓客戶在其書簽中

使用 Linux 記錄下這個伺服器的地址,就必須使用ServerName來重新指定伺服器的正式名字。

DocumentRoot "/www/"
DocumentRoot定義這個伺服器對外發布的超文本文檔存放的路徑,客戶程序請求的URL就被映射為這個目錄下的網頁文件。這個目錄下的子

目錄,以及使用符號連接指出的文件和目錄都能被瀏覽器訪問,只是要在URL上使用同樣的相對目錄名。

注意,符號連接雖然邏輯上位於根文檔目錄之下,但實際上可以位於計算機上的任意目錄中,因此可以使客戶程序能訪問那些根文檔目錄

之外的目錄,這在增加了靈活性的同時但減少了安全性。Apache在目錄的訪問控制中提供了FollowSymLinks選項來打開或關閉支持符號連接的

特性。
---------------------------------------------------------------------------------------------------------------------------
Options FollowSymLinks
AllowOverride None

Apache伺服器可以針對目錄進行文檔的訪問控制,然而訪問控制可以通過兩

種方式來實現,一個是在設置文件 httpd.conf(或access.conf)中針對每個目
錄進行設置,另一個方法是在每個目錄下設置訪問控制文件,通常訪問控制文件
名字為.htaccess。雖然使用這兩個方式都能用於控制瀏覽器的訪問,然而使用配置文件的方法要求每次改動後重新啟動httpd守護進程,比較

不靈活,因此主要用於配置伺服器系統的整體安全控制策略,而使用每個目錄下的.htaccess文件設置具體目錄的訪問控制更為靈活方便。
Directory語句就是用來定義目錄的訪問限制的,這里可以看出它的標准語法,為一個目錄定義訪問限制。上例的這個設置是針對系統的根

目錄進行的,設置了允許符號連接的選項FollowSymLinks ,以及使用AllowOverride None表示不允許這個目錄下的訪問控制文件來改變這里進

行的配置,這也意味著不用查看這個目錄下的相應訪問控制文件。

由於Apache對一個目錄的訪問控制設置是能夠被下一級目錄繼承的,因此對根目錄的設置將影響到它的下級目錄。注意由於AllowOverride

None的設置,使得Apache伺服器不需要查看根目錄下的訪問控制文件,也不需要查看以下各級目錄下的訪問控制文件,直至httpd.conf(或

access.conf )中為某個目錄指定了允許Alloworride,即允許查看訪問控制文件。由於Apache對目錄訪問控制是採用的繼承方式,如果從根目

錄就允許查看訪問控制文件,那麼Apache就必須一級一級的查看訪問控制文件,對系統性能會造成影響。而預設關閉了根目錄的這個特性,就

使得Apache從httpd.conf中具體指定的目錄向下搜尋,減少了搜尋的級數,增加了系統性能。因此對於系統根目錄設置AllowOverride None不

但對於系統安全有幫助,也有益於系統性能。

Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

這里定義的是系統對外發布文檔的目錄的訪問設置,設置不同的 AllowOverride選項,以定義配置文件中的目錄設置和用戶目錄下的安全

控制文件的關系,而Options選項用於定義該目錄的特性。
配置文件和每個目錄下的訪問控制文件都可以設置訪問限制,設置文件是由管理員設置的,而每個目錄下的訪問控制文件是由目錄的屬主

設置的,因此管理員可以規定目錄的屬主是否能覆蓋系統在設置文件中的設置,這就需要使用AllowOverride參數進行設置,通常可以設置的值

為:AllowOverride的設置 對每個目錄訪問控制文件作用的影響

All 預設值,使訪問控制文件可以覆蓋系統配置

None 伺服器忽略訪問控制文件的設置
Options 允許訪問控制文件中可以使用Options參數定義目錄的選項
FileInfo 允許訪問控制文件中可以使用AddType等參數設置
AuthConfig 允許訪問控制文件使用AuthName,AuthType等針對每個用戶的認證機制,這使目錄屬主能用口令和用戶名來保護目錄 Limit 允許

『肆』 怎樣設置Apache訪問限制

一、禁止訪問某些文件/目錄
增加Files選項來控制,比如要不允許訪問 .inc 擴展名的文件,保護php類庫:

配置修改完後記得重啟apache

『伍』 怎樣配置httpd.conf,修改文件目錄訪問許可權

Apache的基本設置主要交由httpd.conf來設定管理,我們要修改Apache的相關設定,主要還是通過修改httpd.cong來實現。下面讓我們來看看httpd.conf的內容,它主要分成3大部分:
Section 1:Global Environment
Section 2:'Main' server configuration
Section 3:Virtual Hosts
【第一部分】
·ServerType standalone
這表示Apache是以standalone啟動,也可以是inetd。所謂standalone是指啟動一次來接聽所有的連線;而inetd是接到http的連線要求才啟動,隨著連線的結束而結束,這樣負擔是不是很但呢?所以一般都是以standalone啟動。
·ServerRoot "/usr/local/httpd"
此為apache的目錄
·#LocdFile /use/local/httpd/logs/httpd.lock
保留預設值,不更動
·PidFile /usr/local/httpd/logs/httpd.pid
此文件記錄著apache的父處理程序id
·ScoreBoardFile /usr/local/httpd/logs/httpd.scoreboard
此文件存儲處理程序的信息
·#ResourceConfig conf/srm.conf
·#AccessConfig conf/access.conf
由於我們統籌由httpd.conf來管理,所以這兩個文件預設是註解起來的,可以保留預設值不更動
·Timeout 300
設盯超時的時間。如果用戶端超過300秒還沒連上server,或server超過300秒還沒傳送信息給用戶端,即斷線。
·KeepAlive On
允許用戶端的連線有多個請求,設為Off表示不允許
·MaxKeepAliveRequests 100
每次連線最大的請求樹木,數字愈大,效能愈好。0表示不限制
·MinSpareServer 5
·MaxSpareServers 10
MinSpareServer 5表示最少會有5個閑置的處理程序,如果實際的數目少於此數目,則會增加處理程序。MaxSpareServers 10表示最大的閑置處理程序數目,如果你的網站需求量很大,可以將此數目設大一些,大不要隨便將此數目設得太大。
·StartServers 5
啟動時Server的數目
MaxClients 150
限制同時間最大的連線數目,當然不能設得太小,一旦達到此數目,就無法再增加用戶端
·MaxRequestPerChild 0
限制子處理程序結果前的要求數目,0表示不限制
·#Listen 3000
·#Listen 12.34.56.78:80
使用其它的連接埠或IP
·BindAddress *
可以接聽*(所有IP地址)、指定的IP地址或是完整的域名
·#LoadMole foo_mole libexec/mod_foo.so
使用DSO模塊
·#ExtendedStatus On
可檢閱apache的狀態信息,預設是Off(註解起來)
【第二部分】
如果之前的ServerType是inetd,請直接跳到ServerAdmin。
·Port 80
Standalone伺服器接聽的連接埠,當然也可以是其他小於1023的埠號
·User nobody
·Group nobody
執行httpd的用戶和群組
·ServerAdmin 管理員的電子郵件地址
這是管理員的電子郵件地址,如果apache有問題的話,會寄信通知管理員,當然你也可以建立一個專門負責web的帳號來收信
·ServerName 你的主機名稱
此為主機名稱,如果沒有域名,也可以用IP
·DocumentRoot "usr/local/httpd/htdocs"
此目錄為apache放置網頁的地方,裡面的index.html即為連到此主機的預設首頁
·
Options FollowSymLinks
AllowOverride none

此目錄設定用戶放置網頁的目錄(public_html)的執行動作。詳細的目錄存取方法會在後面說明
·
Options Indexes FolloeSymLinks
AllowOverride None
Order allow,deny
Allow from all

此目錄設定apache的網頁目錄(htdocs)的執行動作
·UserDir public_html
用戶可在自己的目錄下建立public_html目錄來放置網頁,輸入http://主機地址/~用戶名稱即可連接到...勞撤胖玫牡胤?/a>
·DirectoryIndex index.html
這里設定預設主頁的名稱
·AccessFileName .htaccess
這個是控制存取的文件名稱,一般採用預設的.htaccess名稱,後面會說明htaccess的使用方法
·
Order allow,deny
Deny from all

這用來防止其他人看到.ht開頭的文件內容,不僅是保護.htaccess的內容,還保護.htpasswd的內容。當然也可以直接寫成。如果你有更改AccessFilename,例如將.htaccess改成.accessht,請記得也要在此做相關的更改,如此才能防止其他人看到哦
·#CacheNegotiatedDocs
註解起來是告訴Proxy不要將互動產生的文件存入cache,如果拿掉#,則會存在cache中
·UseCanonicalName On
使用標準的名稱,預設是On。假設有一個web server的全名是www.sample.com,一般稱為www;如果us...羑ttp://www/abc
·TypeConfig /usr/local/httpd/conf/mime.types
指定存放MIME文件類型的文件。你可以自行編輯mime.types文件。
·DefaultType text/plain
當server不認得此文件類型時的預設格式,此設定是當成一般文字
·
MIMEMagicFile /usr/local/httpd/conf/magic

mod_mime_magic模塊可使server由文件內容決定其MIME類型。如果有載入mod_mime_magic模塊,才會處理MIMEMagicFile這一段。如果是…,則表示如果沒有載入該模塊,才會處理這一段
·HostLookups Off
如果為On,則每次都會向name server解析該IP,記錄此連線的名稱(例如www.apache.org)自換岷牟簧偈奔洌...為Off,僅記錄IP
·ErrorLog /usr/local/httpd/logs/error_log
指定發生錯誤的記錄文件(error_log)位置。如果在沒有指定發生錯誤的記錄文件,則會沿用此文件
·LogLevel warn
記錄分成很多等級,在此是warn。各等級如下: 等級 說明
debug debug信息
info 普通信息
notice 重要信息
warn 警告信息
error 發生錯誤
crit 緊急情況
alert 馬上要處理的情況
amerg 系統快要死了
·LogFormat "%h %l %u %t\"%r\"%>s %b\"{Referer}i\"\"${UserAgent}i\""combined
LogFormat "%h %l %u %t"%r\"%>s %b"commom
LogFormat "%{Referer}i->%U"referer
LogFormat "%{User-agent}i"agent
自定四種記錄格式:combined、common、referer、agent
·CustomLog /usr/local/httpd/logs/access_log common
存取的記錄文件(access_log)使用自定的common格式
·#CustomLog /usr/local/httpd/logs/referer_log referer
#CustomLog /usr/local/httpd/logs/agent_log agent
#CustomLog /usr/local/httpd/logs/agent_log combined
這三個記錄文件也是使用自定義格式(分別是referer、agent、combined),不過註解起來表示未使用這三個文件
·ServerSignature On
設為On時,在server所產生的網頁(像是錯誤發生時)上,會有apache的版本、主機、連接埠的一行信息;如果設為Email,則會有mailto:給管理員的超鏈接
·Alias /icons/ "/usr/local/httpd/icons/"
使用較短的別名,其格式為:Alias 別名 原名。
·ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"
和Alias一樣,只是這是設定server script的目錄
·IndexOptions FancyIndexing
顯示好看的文件清單(配合下面各文件所對應的圖形)
·AddIconByEncoding(CMP,/icons/compressed.gif)x-conpress x-gzip
·AddIcon /icons/blank.gif^^BLANKICON^^DefaultIcon/icons/unknow.gif
這些是在顯示文件清單(之前所說的FancyIndex)時,各種文件類型的對應圖形。例如.ps .si .eps這三種文件的表示圖形都是a.gif
·#AddDescription "GZIP conpressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
這些是在顯示文件清單時,在文件後面附上說明,其格式為:
AddDescription "說明" 文件名
例如:AddDescription "It is private txt" my.txt
·ReadmeName README
顯示文件清單時,在最下面顯示README的文件內容
設置CGI腳本/將httpd.conf做為唯一的配置文件/用戶授權和訪問控制等
關於Apache的配置及使用,在LinuxAid中已經有不少文章做了詳細的闡述,本文討論了在使用Apache時,有關配置文件的使用及對文件的訪問控制等內容,算是對Apache的使用所做的一些補充吧!
如果您對Apache有一定的了解,特別是對幾個配置文件有一定的了解,這將會有助於您對本文內容的理解;如果恰巧您不是很了解這幾個配置文件的使用,那麼就借著這個機會來一起熟悉一下吧。
一、關於CGI執行腳本的配置
這里有兩種設置CGI腳本的方法。第一、CGI的腳本文件以.cgi為擴展名;第二、設置腳本可執行目錄。但是這兩種方法都需要將要執行的文件設置為711,才可以被執行。
第一種方法,我們需要在access.conf文件種將你要發行的目錄設置為Option ExecCGI All,在srm.conf資源配置文件中,加上下列一句:
AddHandle cgi-script .cgi
這樣在所有的目錄種只要你的文件是.cgi為擴展名的,且文件訪問許可權為711的,無論給文件在你發行目錄的任何一個地方都可以做為CGI被Apache伺服器調用。這種方法一般沒有第二種方法安全。
第二種方法,是將一個目錄作為一個可執行目錄,將所有的cgi文件都放在其中,這里就不一定非得是以.cgi為擴展名得文件可以執行,而是只要有711屬性的文件就可以被執行,而且其它的非可執行文件都被禁止訪問。我們的默認配置文件種就有一個很好的例子:
access.conf:

Allow Override None
Options ExecCGI

srm.conf
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
這樣只要在/home/httpd/cgi-bin/目錄中的可執行文件都可以被Web伺服器調用,而其它的非可執行文件將被拒絕訪問。
二、配置用戶的發行目錄
這里有兩種設置方法:
第一種是系統的默認方法,即用戶目錄下的public_html目錄為用戶的發行目錄,且默認的主頁文件為index.html,且該目錄不支持CGI。
第二種是在其它目錄種專門為用戶設置發布目錄,如我想在/home/html目錄做為用戶的web目錄,那管理員就應該在該目錄下為每一個用戶設置一個子目錄,如:/home/html/user01、/home/html/user02等。那麼,你的srm.conf文件中的UserDir後面就不能再是public_html了,應該改為:UserDir /home/html/*/,注意這里的「*」代表anyone,當你再瀏覽器中請求一個如http://www.domain/~user01時,Apache...ndex.html文件。
這種設置不需要到access.conf中設置該目錄的訪問屬性,還有,當我們設置虛擬主機時也不用設置目錄的訪問屬性,但是如果你想讓某個目錄具有CGI許可權,都要到Access.conf文件中去配置目錄的訪問許可權,如:你想讓你的所有用戶在他們的發布目錄中具有CGI訪問權,則需要在你的access.conf中這樣設置:

Allow Override None
Options ExecCGI

注意這里設置用戶目錄中的cgi-bin子目錄為cgi執行目錄,這是一種安全的設置,而且也是一種UNIX的習慣。
三、如何將Apache伺服器設置為inetd的子服務
當你安裝了Apache後,默認設置為standalone方式運行,如果你想將它設置為inetd的子服務,首先在每次激活Linux時不激活httpd,然後編輯/etc/inetd.conf,在其中加入下列語句:http stream tcp nowait root /usr/sbin/httpd httpd
然後重新激活inetd伺服器。這樣你用ps -aux命令查看進程運行情況時,你不會發現httpd的進程的存在,但是一旦有客戶請求一個頁面時,inetd就激活一個httpd進程為該請求服務,之後就自動釋放,這種運行方式有助於節省系統資源,但是如果你的web服務很重要,一般不建議設置為這種方式運行。
四、將httpd.conf做為唯一的配置文件
在Apache中給用戶提供了三個配置文件: srm.conf、 access.conf 和 httpd.conf files。實際上這三個文件是平等的,所有的配置都可以放在一個單獨的httpd.conf文件中,事實上在Apache 1.3.2中就已經這樣做了,在httpd.conf中應包括以下兩條指令來防止Apache對srm.conf和access.conf兩個配置文件的訪問:
AccessConfig /dev/null
ResourceConfig /dev/null
在apache1.3.2中只要注釋掉以下這兩行即可:
AccessConfig conf/access.conf
ResourceConfig conf/srm.conf
五、用戶授權和訪問控制
你也許在訪問某些網站時會遇到過這樣的情況,當你點擊某個連接時,你的瀏覽器會彈出一個身份驗證的對話框,要求輸入賬號及密碼,如果沒有,就無法繼續瀏覽了。有人會以為這是用CGI做出來的,其實不然,這是WWW伺服器的用戶授權和訪問控制機制在發揮作用。
你是否還記得在設置Apache服務環境的過程中,有……..<./Directory>這個指令,可以對不同的目錄提供不同的保護。但是這樣的設定,需要重新啟動伺服器才會生效,靈活性較差,通過AccessFile指令指定訪問控制文件的方式則比較靈活,在Apache伺服器中設置用戶的訪問控制許可權步驟如下:
1、首先對httpd.conf文件進行設置如下:

# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Options Includes FollowSymLinks Indexes
AllowOverride All //*注意AllowOverride 一定要設置為All,這樣後面的.htaccess文件才會起作用

Order allow,deny
Allow from all

#
# Order deny,allow
# Deny from all
#

#指定配置存取控制許可權的文件名稱
AccessFileName .htaccess
2、創建.htaccess文件內容
要控制某目錄的訪問許可權必須建立一訪問控制文件,文件名前面指定的「.htaccess」,其內容格式如下:
AuthUserFile 用戶帳號密碼文件名
AuthGroupFile 群組帳號密碼文件名
AuthName 畫面提示文字
AuthType 驗證方式

密碼驗證方式

用戶驗證方式AuthType目前提供了Basic和Digest兩種。
密碼檢驗設定方法與httpd.conf中的相關設定相同。
具體例子如下:
AuthUserFile /etc/secure.user
AuthName 安全認證中心
AuthType Basic

require valid-user

3、建立用戶密碼文件
如果你是第一次創建用戶密碼,命令格式如下:
htpasswd -c 密碼文件名 用戶名稱
在上面的例子中,我們將用戶密碼文件放到了/etc/secure.user文件中,所以這里應按照如下進行操作:
htpasswd -c /etc/secure.user sword
程序會提示你輸入兩次用戶的口令,然後用戶密碼文件就已經創建sword這個用戶也添加完畢了。
如果要向密碼文件中添加新的用戶,按照如下命令格式進行操作:
htpasswd 密碼文件 用戶名稱
這樣,重新啟動httpd後,進行該WEB目錄時就會有一個對話框彈出,要求輸入用戶名及用戶口令了。
4、如何減少訪問控制對Apache性能的影響
頻繁的使用訪問控制會對Apache的性能產生較大的影響,那麼,如何才能減少這種影響呢?最簡單也是最有效的方法之一就是減少.htaccess文件的數目,這樣可以避免Apache對每一個請求都要按照.htaccess文件的內容進行授權檢查。它不僅在當前的目錄中查找.htaccess文件,它還會在當前目錄的父目錄中查找。
/
/usr
/usr/local
/usr/local/etc
/usr/local/etc/httpd
/usr/local/etc/httpd/htdocs
/usr/local/etc/httpd/htdocs/docs
通常在根目錄下沒有htaccess文件,但Apache仍然會進行例行檢查以確定該文件確實不存在。這是影響很影響伺服器工作效率的事情。下面的方法可以消除這個討厭的過程:將AllowOverride選設置為None,這樣Apache就會檢查.htaccess文件了。將/根目錄的AllowOverride選項設為None,只將需要進行訪問控制的目錄下的AllowOverride選項設置為all,如下面的例子中將/根目錄的AllowOverride 選項關閉了,只打開了/usr/local/etc/httpd/htdocs目錄下的AllowOerride選項,這樣,系統就只

『陸』 Apache的配置由httpd.conf文件配置修改。

(1) 基本配置:

ServerRoot "/mnt/software/apache2" #你的apache軟體安裝的位置。其它指定的目錄如果沒有指定絕對路徑,則目錄是相對於該目錄。

以下是對主站點的目錄進行訪問控制:

在上面這段目錄屬性配置中,主要有下面的選項:

對於不在DocumentRoot指定的目錄內的頁面,既可以使用符號連接,也可以使用別名。別名的設置如下:

ErrorLog logs/error_log #日誌的保存位置 LogLevel warn #日誌的級別
顯示的格式日下:

日誌的預設格式有如下幾種:

首先在配置之前先來了解一些基本概念:

SSL所使用的證書可以自己生成,也可以通過一個商業性CA(如Verisign 或 Thawte)簽署證書。

如果不為單獨的客戶端簽發證書,客戶端證書可以不用生成,客戶端與伺服器端使用相同的證書。

『柒』 請教Apache配置虛擬主機和UserDir的問題

Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改。
主站點的配置(基本配置)
(1) 基本配置:
ServerRoot "/mnt/software/apache2" #你的apache軟體安裝的位置。其它指定的目錄如果沒有指定絕對路徑,則目錄是相對於該目錄。
PidFile logs/httpd.pid #第一個httpd進程(所有其他進程的父進程)的進程號文件位置。
Listen 80 #伺服器監聽的埠號。
ServerName www.clusting.com:80 #主站點名稱(網站的主機名)。
ServerAdmin [email protected] #管理員的郵件地址。
DocumentRoot "/mnt/web/clusting" #主站點的網頁存儲位置。
以下是對主站點的目錄進行訪問控制:
<Directory "/mnt/web/clusting">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
在上面這段目錄屬性配置中,主要有下面的選項:
Options:配置在特定目錄使用哪些特性,常用的值和基本含義如下:
ExecCGI: 在該目錄下允許執行CGI腳本。
FollowSymLinks: 在該目錄下允許文件系統使用符號連接。
Indexes: 當用戶訪問該目錄時,如果用戶找不到DirectoryIndex指定的主頁文件(例如index.html),則返回該目錄下的文件列表給用戶。
SymLinksIfOwnerMatch: 當使用符號連接時,只有當符號連接的文件擁有者與實際文件的擁有者相同時才可以訪問。
其它可用值和含義請參閱:http://www.clusting.com/Apache/ApacheManual/mod/core.html#options
AllowOverride:允許存在於.htaccess文件中的指令類型(.htaccess文件名是可以改變的,其文件名由AccessFileName指令決定):
None: 當AllowOverride被設置為None時。不搜索該目錄下的.htaccess文件(可以減小伺服器開銷)。
All: 在.htaccess文件中可以使用所有的指令。
其他的可用值及含義(如:Options FileInfo AuthConfig Limit等),請參看: http://www.clusting.com/Apache/ApacheManual/mod/core.html#AllowOverride
Order:控制在訪問時Allow和Deny兩個訪問規則哪個優先:
Allow:允許訪問的主機列表(可用域名或子網,例如:Allow from 192.168.0.0/16)。
Deny:拒絕訪問的主機列表。
更詳細的用法可參看:http://www.clusting.com/Apache/ApacheManual/mod/mod_access.html#order
DirectoryIndex index.html index.htm index.PHP #主頁文件的設置(本例將主頁文件設置為:index.html,index.htm和index.php)
(2) 伺服器的優化 (MPM: Multi-Processing Moles)
apache2主要的優勢就是對多處理器的支持更好,在編譯時同過使用–with-mpm選項來決定apache2的工作模式。如果知道當前的apache2使用什麼工作機制,可以通過httpd -l命令列出apache的所有模塊,就可以知道其工作方式:
prefork:如果httpd -l列出prefork.c,則需要對下面的段進行配置:
<IfMole prefork.c>
StartServers 5 #啟動apache時啟動的httpd進程個數。
MinSpareServers 5 #伺服器保持的最小空閑進程數。
MaxSpareServers 10 #伺服器保持的最大空閑進程數。
MaxClients 150 #最大並發連接數。
MaxRequestsPerChild 1000 #每個子進程被請求服務多少次後被kill掉。0表示不限制,推薦設置為1000。
</IfMole>
在該工作模式下,伺服器啟動後起動5個httpd進程(加父進程共6個,通過ps -ax|grep httpd命令可以看到)。當有用戶連接時,apache會使用一個空閑進程為該連接服務,同時父進程會fork一個子進程。直到內存中的空閑進程達到MaxSpareServers。該模式是為了兼容一些舊版本的程序。我預設編譯時的選項。
worker:如果httpd -l列出worker.c,則需要對下面的段進行配置:
<IfMole worker.c>
StartServers 2 #啟動apache時啟動的httpd進程個數。
MaxClients 150 #最大並發連接數。
IXDBA.NET社區論壇
MinSpareThreads 25 #伺服器保持的最小空閑線程數。
MaxSpareThreads 75 #伺服器保持的最大空閑線程數。
ThreadsPerChild 25 #每個子進程的產生的線程數。
MaxRequestsPerChild 0 #每個子進程被請求服務多少次後被kill掉。0表示不限制,推薦設置為1000。
</IfMole>
該模式是由線程來監聽客戶的連接。當有新客戶連接時,由其中的一個空閑線程接受連接。伺服器在啟動時啟動兩個進程,每個進程產生的線程數是固定的(ThreadsPerChild決定),因此啟動時有50個線程。當50個線程不夠用時,伺服器自動fork一個進程,再產生25個線程。
perchild:如果httpd -l列出perchild.c,則需要對下面的段進行配置:
<IfMole perchild.c>
NumServers 5 #伺服器啟動時啟動的子進程數
StartThreads 5 #每個子進程啟動時啟動的線程數
MinSpareThreads 5 #內存中的最小空閑線程數
MaxSpareThreads 10 #最大空閑線程數
MaxThreadsPerChild 2000 #每個線程最多被請求多少次後退出。0不受限制。
MaxRequestsPerChild 10000 #每個子進程服務多少次後被重新fork。0表示不受限制。
</IfMole>
該模式下,子進程的數量是固定的,線程數不受限制。當客戶端連接到伺服器時,又空閑的線程提供服務。 如果空閑線程數不夠,子進程自動產生線程來為新的連接服務。該模式用於多站點伺服器。
(3) HTTP返頭回信息配置:
ServerTokens Prod #該參數設置http頭部返回的apache版本信息,可用的值和含義如下:
Prod:僅軟體名稱,例如:apache
Major:包括主版本號,例如:apache/2
Minor:包括次版本號,例如:apache/2.0
Min:僅apache的完整版本號,例如:apache/2.0.54
OS:包括操作系統類型,例如:apache/2.0.54(Unix)
Full:包括apache支持的模塊及模塊版本號,例如:Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g
ServerSignature Off #在頁面產生錯誤時是否出現伺服器版本信息。推薦設置為Off
(4) 持久性連接設置
KeepAlive On #開啟持久性連接功能。即當客戶端連接到伺服器,下載完數據後仍然保持連接狀態。
MaxKeepAliveRequests 100 #一個連接服務的最多請求次數。
KeepAliveTimeout 30 #持續連接多長時間,該連接沒有再請求數據,則斷開該連接。預設為15秒。
別名設置
對於不在DocumentRoot指定的目錄內的頁面,既可以使用符號連接,也可以使用別名。別名的設置如下:
Alias /download/ "/var/www/download/" #訪問時可以輸入:http://www.custing.com/download/
<Directory "/var/www/download"> #對該目錄進行訪問控制設置
Options Indexes MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
CGI設置
scrīptAlias /cgi-bin/ "/mnt/software/apache2/cgi-bin/" # 訪問時可以:http://www.clusting.com/cgi-bin/ 。但是該目錄下的CGI腳本文件要加可執行許可權!
<Directory "/usr/local/apache2/cgi-bin"> #設置目錄屬性
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

『捌』 liunx怎麼設置apache的目錄訪問

首先:Linux下默認安裝後的Apache根目錄在/var/www/html下,我們需要對目錄進行訪問
第一 :創建自己需要更改的新目錄,並更改宿主許可權為apache用戶 chown -R apache:apache /mnt/chaodiquan.com/www
第二:停止Apache服務 service httpd stop
第三:修改Apache的配置文件,默認在/etc/httpd/conf/httpd.conf,找到Document Root修改為你需要許可權
第四:保存配置文件後,重啟Apache服務,你的Apache目錄更改就會生效了。

『玖』 apache怎麼指定訪問後台目錄

一、修改Apache的默認站點目錄
Apache HTTP Server安裝好後,默認的站點目錄位於其安裝目錄下的htdocs文件夾內,默認首頁是該文件夾的index.html文件。比如,我的Apache是安裝在C:/wamp/bin/apache/Apache2.2.21內,那麼我的Apache的完整的默認站點目錄地址就是C:/wamp/bin/apache/Apache2.2.21/htdocs/,默認首頁就是C:/wamp/bin/apache/Apache2.2.21/htdocs/index.html。
很多時候,不管是學習、測試,還是想真正的搭建自己的站點,我們可能並不想把自己的網站放在Apache默認的站點目錄下,這時,本節的知識將會幫助你解決這個問題。
在httpd.conf找到 DocumentRoot D:/Apache/htdocs ,我把這行改為 DocumentRoot E:/htdocs 即可。
修改方法:1、到Apache的安裝目錄下找到conf文件夾,該文件夾內會httpd.conf這樣一個文本文檔,它是Apache的配置文件,負責指揮Apache的運行。
2、雙擊打開httpd.conf這個文本文檔,按下鍵盤上的Ctrl+F組合鍵查找DocumentRoot (帶英文雙引號,見圖),查找出來之後(僅有一處),將字元串DocumentRoot後面雙引號內的字元串修改為自己想要設定的網站目錄。
如:默認為DocumentRoot C:/wamp/bin/apache/Apache2.2.21/htdocs,現修改成DocumentRoot D:/Apache
3、完成上述第2步之後,暫不要關閉httpd.conf文件,繼續查找,查找<Directory (帶英文雙引號,見圖3),查找到<Directory 之後,將第一個Directory字元串後面雙引號內的字元串修改為自己想要設定的網站目錄。
如:默認為<Directory C:/wamp/bin/apache/Apache2.2.21/htdocs,現修改成<Directory D:/Apache
4、同時按下鍵盤上的Ctrl+S組合鍵保存上述修改,一定記得要停止(STOP)一次Apache服務然後再啟動(START),使剛剛的修改生效。
綜上所述,更改 Apache 默認網站根目錄只需更改以下兩個地方即可!
1.找到 DocumentRoot D:/Apache/htdocs 將D:/Apache/htdocs改為你自定義的網站目錄;
2.找到 <Directory D:/Apache/htdocs 將D:/Apache/htdocs改為你自定義的網站目錄。

『拾』 httpd.conf配置詳細教程

Apache伺服器指令大全

詳細的配置方式請參閱:

方義等.2001.Apache Server 的配置與管理.北京:人民郵電出版社

基本指令

一、一般的配置命令

1、AccessFileName

默認值:AccessFileName .htaccess

此命令是針對目錄的訪問控制文件的名稱;

2、BindAddress

默認值:BindAddress *

設置伺服器監聽的IP地址;

3、DefaultType

默認值:DefaultType text/html

伺服器不知道文件類型時,用預設值通知客戶端;

4、DocumentRoot

默認值:DocumentRoot 「/var/www/html/」

設置Apache提供文件服務的目錄;

5、ErrorDocument

設置當有問題發生時,Apache所做的反應;

6、<IfMole>

使用不包含在Apache安裝中的模塊的命令

7、Include

包含其它的配置文件

8、Listen

默認值:所有能夠連接到伺服器的IP地址

指定如何響應除去Port指定的埠地址外的地址請求;

9、Options

控制某個特定目錄所能使用的伺服器功能;

其值有:

None:表示只能瀏覽,

FollowSymLinks:允許頁面連接到別處,

ExecCGI:允許執行CGI,
MultiViews:允許看動畫或是聽音樂之類的操作,

Indexes:允許伺服器返回目錄的格式化列表,

Includes:允許使用SSI。這些設置可以復選。

All:則可以做任何事,但不包括MultiViews。

AllowOverride:加None參數表示任何人都可以瀏覽該目錄下的文件。
另外的參數有:FileInfo、AuthConfig、Limit。

10、Port

默認值:Port 80

設置伺服器監聽的網路埠;

11、ServerAdmin

設定管理員的電子郵件地址;

12、ServerName

設定伺服器的主機名稱;

13、ServerRoot

默認值:ServerRoot /etc/httpd/

設定伺服器的根目錄;

14、User && Group

指定伺服器用來回答請求的用戶ID和組ID;

熱點內容
紅警咋解壓 發布:2025-08-21 22:42:58 瀏覽:888
負73的源碼 發布:2025-08-21 22:31:51 瀏覽:675
安卓tabs是干什麼的 發布:2025-08-21 22:27:52 瀏覽:164
演算法可能解 發布:2025-08-21 22:27:33 瀏覽:691
用一台電腦作為共享伺服器 發布:2025-08-21 22:25:34 瀏覽:661
觸動精靈腳本過期 發布:2025-08-21 22:10:34 瀏覽:891
無法訪問iis 發布:2025-08-21 22:04:05 瀏覽:262
win7asp伺服器搭建 發布:2025-08-21 22:02:13 瀏覽:594
手機端編寫腳本 發布:2025-08-21 21:46:54 瀏覽:565
九游如何看帳號與密碼 發布:2025-08-21 21:42:32 瀏覽:4