apache 配置

 

轉自:http://linuxnote.blog.51cto.com/9876511/1626161html

Apache配置目錄解釋linux

wKioL1UXonfzGKM6AAEE75ipDpo889.jpg

 

bin:shell

是Apache執行文件所在的目錄。例如,Apache的主要執行文件apachectl,使用這個命令能夠用來控制Apache服務器開啓或中止。還有Apache的密碼保護文件htpasswd,當用戶在某些網頁須要輸入帳號與密碼時,Apache自己提供一個最基本的密碼保護方式,該密碼的產生就是透過這個指令來完成的。apache

cgi-bin:瀏覽器

預設給一些可執行的CGI網頁程序存放的目錄,當用戶輸入http://localhost/cgi-bin/時所顯示的數據所存儲的目錄。緩存

error:安全

默認錯誤應答文件目錄。若是由於服務器設置或者瀏覽器要求的數據錯誤時,在瀏覽器上出現的錯誤信息存放的位置。服務器

icons:網絡

這個目錄提供Apache預設給予的一些小圖示。併發

lib:

目錄中保存了Apache服務器運行所需的庫文件。

man:

Apache服務器配置文件的幫助手冊所在目錄。

modules:

Apache服務器所支持的動態加載模塊所在的位置。

build:

目錄是用於存放編譯後的文件的。

conf:

Apache的配置文件的目錄。

htdocs:

默認Web文檔根目錄,就是用戶存放網頁和存放默認首頁的位置。用戶經過瀏覽器中輸入地址訪問這個下面的文件,並將文件內容傳回給用戶瀏覽器,顯示成美妙的頁面供給用戶瀏覽。

Logs:

Apache日誌文件存放的位置。

1.access_log(訪問日誌):

記錄了全部對Web服務器的訪問活動,例如,記錄了客戶端的IP地址和在什麼時間訪問了哪一個頁面等信息。

2.error_log(錯誤日誌文件):

記錄了全部對Web服務器的錯誤訪問活動。

manual:

目錄中保存了Apache服務器的幫助手冊文件,文件是網頁格式的,能夠經過訪問Apache服務器中的/manual目錄閱讀該目錄下的幫助文件內容。

 

在配置Apache的時候打開conf目錄能夠看到httpd.conf配置文件以及extra、original文件夾,你們會有疑問到底配置文件是哪一個呢?original文件夾內也有個httpd.conf和extra文件夾。

用文件對比工具比較了兩個httpd.conf發現內容同樣,extra中的內容也同樣,再仔細觀察發現original目錄中的內容其實就是conf目錄中不含original文件夾的內容。

extra的意思是額外擴展,original的意思是源目錄文件。

最後總結:

original文件夾是配置文件的源文件備份,而真正要配置的是conf目錄下的httpd.conf文件以及extra目錄的額外擴展配置。

wKioL1UXo1eiwwvuAAOelnbSx7E527.jpg

Apache服務器配置庫文件目錄

wKiom1UXojLA7-LYAAR5cil_zmE357.jpg

 

/usr/local/apache2/conf/httpd.conf Apache主配置文件

/usr/local/apache2/conf/extra/                       擴展及模塊配置文件目錄

 

httpd-autoindex.conf               配置目錄列表的輔配置文件

httpd-dav.conf                     配置DAV的輔配置文件

httpd-default.conf                 配置與Apache服務自身相關的輔配置文件

httpd-info.conf                    配置用於服務器信息和狀態顯示的輔配置文件

httpd-languages.conf               配置語言支持的輔配置文件

httpd-manual.conf                  配置提供Apache文檔訪問的輔配置文件

httpd-mpm.conf                     配置多路處理模塊(MPM)的輔配置文件

httpd-multilang-errordoc.conf      配置多語言錯誤應答的輔配置文件

httpd-ssl.conf                     配置SSL模塊的輔配置文件

httpd-userdir.conf                 配置用戶主目錄的輔配置文件

httpd-vhosts.conf                  配置虛擬主機的配置文件

httpd.conf主配置文件內參數詳解:

ServerRoot"/usr/local/apache2"

服務器配置文件的目錄,編譯安裝的時候—prefix指定的目錄

Listen 80

服務所監聽的端口,默認是80

User daemon

實際服務於請求的子進程運行時的用戶

Group daemon

請求提供服務的Apache子進程運行時的用戶組

ServerAdmin  you@example.com

設置在全部返回給客戶端的錯誤信息中包含的管理員郵件地址

ServerName localhost:80

設置服務器用於辨識本身的主機名和端口號

DocumentRoot"/usr/local/apache2/htdocs"

設置Web文檔根目錄

<Directory />

    Options FollowSymLinks     //配置在特定目錄中可使用哪些特性

    AllowOverride None              //肯定運行已存在於.htaccess文件中的指令類型

    Order deny,allow                     //設置訪問控制順序,這裏參數表示先拒絕後容許

    Deny from all//拒絕全部IP或主機訪問除了all外能夠設置IP、網段、域名、通配符

</Directory>

對某個目錄或子目錄都有效。任何能夠在」directory」做用域中使用的指令均可以使用。Directory-path能夠是一個目錄的完整路徑,也能夠說包含了Unix shell匹配語法的通配符字符串。在通配符字符串中,」?」匹配單個字符,」*」匹配任何字符序列。也可使用」[]」來肯定字符範圍。以上通配符都不能匹配」/」字符。以</Directory>指令結束。

<IfModuledir_module>

    DirectoryIndex index.html                    //Apahce自動運行index.html文檔

</IfModule>

封裝根據指定的模塊是否啓用而決定是否生效的指令。

語法:<IfModule [!]module-file|module-identifier> ...</IfModule>

module-file是指編譯模塊時的文件名,好比mod_rewrite.c 。

module-identifier是指模塊的標識符,好比mod_rewrite 。

在<IfModule>配置段中的指令僅當測試結果爲真的時候才進行處理,不然全部其間的指令都將被忽略。

DefaultType text/plain

設定默認MIME內容類型

ErrorLog"logs/error_log"

錯誤日誌存放位置

CustomLog logs/access_logcombined

指定訪問日誌及使用的格式

</IfModule>

ScriptAlias /cgi-bin/"/usr/local/apache-2.2.6/cgi-bin/"

設定默認CGI腳本目錄及別名

<IfModulecgid_module>

    Scriptsock logs/cgisock

在以線程式MPM(worker)運行的Apache中設置用來與CGI守護進程通訊的套接字文件名前綴

</IfModule>

<Directory"/usr/local/apache-2.2.6/cgi-bin">

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

</Directory>

設定默認CGI腳本目錄的屬性

DefaultType text/plain

設定默認MIME內容類型

<IfModulemime_module>

    TypesConfig conf/mime.types

指定MIME類型映射文件

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

增長.Z .tgz的類型映射

</IfModule>

EnableMMAP on

啓用內存映射

EnableSendfile on

使用操做系統內核的sendfile支持來將文件發送到客戶端

Includeconf/extra/httpd-mpm.conf

指定多路處理模塊(MPM)配置文件並將其附加到主配置文件

Includeconf/extra/httpd-multilang-errordoc.conf

指定多語言錯誤應答配置文件並將其附加到主配置文件

Include conf/extra/httpd-autoindex.conf

指定目錄列表配置文件並將其附加到主配置文件

Includeconf/extra/httpd-languages.conf

指定語言配置文件並將其附加到主配置文件

Includeconf/extra/httpd-userdir.conf

指定用戶主目錄配置文件並將其附加到主配置文件

#Includeconf/extra/httpd-info.conf

指定用於服務器信息和狀態顯示的配置文件並將其附加到主配置文件

#Include conf/extra/httpd-manual.conf

指定提供Apache文檔訪問的配置文件並將其附加到配置文件

#Includeconf/extra/httpd-dav.conf

指定DAV配置文件並將其附加到主配置文件

Includeconf/extra/httpd-default.conf

指定與Apache服務自身相關的配置文件並將其附加到主配置文件

Includeconf/extra/httpd-deflate.conf

指定mod_deflate壓縮模塊配置文件並將其附加到主配置文件

Includeconf/extra/httpd-expires.conf

指定mod_expires模塊配置文件並將其附加到主配置文件

#Includeconf/extra/httpd-vhosts.conf

指定虛擬主機配置文件並將其附加到主配置文件

Includeconf/extra/httpd-ssl.conf

指定SSL配置文件並將其附加到主配置文件

<IfModulessl_module>

SSLRandomSeed startupbuiltin

SSLRandomSeed connect builtin

</IfModule>

SSL默認配置

httpd-autoindex.conf              配置目錄列表的輔配置文件

IndexOptions  FancyIndexing  HTMLTable VersionSort

與目錄索引有關的設置項目

Alias /icons/"/usr/local/apache2/icons/"

使用別名「/icons/」來表示FancyIndexed目錄列表,若是你不使用、 

AddIcon*

指令告訴服務器不一樣擴展名的圖象文件如何顯示,只適用於FancyIndexed指令 

DefaultIcon/icons/unknown.gif

爲那些沒有顯式定義圖標的文件提供處理 

ReadmeNameREADME.html

指定服務器默認查找的README文件的名字,並添加到目錄列表中 

HeaderNameHEADER.html

指定目錄列表前綴文件的文件名 

IndexIgnore.??* *~ *# HEADER* README* RCS CVS *,v *,t

指定目錄索引忽略而且不包含在列表中的文件名集合,支持shell類型的通配符。 

httpd-dav.conf                    配置DAV的輔配置文件

DavLockDB"/usr/local/apache2/var/DavLock"

用戶驗證須要,不可缺乏,且須要爲運行apache的用戶可執行權限。 

Alias /uploads"/usr/local/apache2/uploads"

設置一個別名(虛擬目錄),當用戶訪問http://IP/uploads網址時,其實是指向服務器的/usr/local/apache2/uploads 相似建立一個快捷方式

BrowserMatch *

設置瀏覽器匹配

httpd-default.conf                配置與Apache服務自身相關的輔配置文件

Timeout 300                              

超時時間爲300秒,服務器在判定請求失敗前等待的秒數

KeepAlive On                             

提供長效的HTTP會話,用以在同一個TCP鏈接中進行屢次請求

MaxKeepAliveRequests 100

限制了當前啓用Keepalive時每一個鏈接容許的請求數量

KeepAliveTimeout 5              

Apache在關閉持久鏈接前等待下一個請求的秒數

UseCanonicalName Off                 

會將ServerName設置的域名用於全部的自引用URL、SERVER_NAME、CGI中的SERVER_PORT AccessFileName .htaccess URL重寫、自定義錯誤頁面、MIME類型配置以及訪問權限控制等

ServerTokensFull

應答頭是否包含關於服務器操做系統類型和編譯進的模塊的描述信息

ServerSignature On

用來配置服務器端生成文檔的頁腳(錯誤信息、mod_proxy的FTP目錄列表、mod_info的輸出)。使用該指令來啓用這個頁腳主要在於處於一個代理服務器鏈中的時候,用戶基本沒法辨識出到底是鏈中的哪一個服務器真正產生了返回的錯誤信息。

HostnameLookups Off

該選項指定是否記錄與Apache服務器鏈接的客戶端名稱

httpd-info.conf                   配置用於服務器信息和狀態顯示的輔配置文件

<Location URL路徑|URL>

 //選項權限等設置

</Location>

提供基於URL的訪問控制,配置徹底獨立文件系統以外的操做,這樣會致使服務器受攻擊。它不能用於針對文件系統的訪問控制,由於可能會有幾個不一樣的URL指向文件系統中的同一個文件,因此這樣的控制經常會被容易的繞過,通常拒絕多有客戶訪問。

httpd-languages.conf              配置語言支持的輔配置文件

AddLanguage *

爲主機設置不一樣的語言       

LanguagePriority *

語言優先級

ForceLanguagePriority Prefer Fallback

首先取一個可用的語言類型,若找不到,則機器試圖使用最接近的語言

AddCharset *

一般狀況下使用文件擴展名來判斷字符設置

httpd-manual.conf                 配置提供Apache文檔訪問的輔配置文件

在服務器上提供文件訪問

httpd-mpm.conf                    配置多路處理模塊(MPM) 的輔配置文件

<IfModule 模塊>

    //參數,選項

</IfModule>

其中的指令只有當服務器中存在特定的模塊時纔有效,或是被靜態地編譯到了服務器,或是被動態地載進服務器。

httpd-multilang-errordoc.conf     配置多語言錯誤應答的輔配置文件

多語言錯誤文檔設定

httpd-ssl.conf                    配置SSL模塊的輔配置文件

Listen 443                                                                              

SSL監聽端口

AddTypeapplication/x-x509-ca-cert .crt           

AddTypeapplication/x-pkcs7-crl    .crl                      

證書和CRLs的MIME類型設定

SSLPassPhraseDialog  builtin                                          

密碼對話框:配置密碼對話框的輸入程序。篩選對話框程序必須在標準輸出上提供密碼短語。builtin是內建的終端對話框

SSLSessionCache       "shmcb:/usr/local/apache2/logs/ssl_scache(512000)"

SSLSessionCacheTimeout  300

進程間的會話緩存:一是會話緩存機制,二是超時時間。

SSLMutex "file:/usr/local/apache2/logs/ssl_mutex"

配置內部進程同步所使用的SSL引擎互斥信號的路徑

SSLEngine on

SSL Engine Switch:SSL是否啓用

SSLCertificateFile"/usr/local/apache2/conf/server.crt"

在一個PEM編碼的證書中指出SSL證書文件。若是證書被加密,那麼須要你須要被提示密碼短語。注意殺掉-HUP後將再次提示。記得若是同時用RSA和DSA證書,你要在並行配置兩個(也容許使用DSA密碼等)

SSLCertificateKeyFile"/usr/local/apache2/conf/server.key"

服務器私鑰。若是key不能和證書結合,使用下面指令指定一個key文件。記得若是同時用RSA和DSA證書,你要在並行配置兩個(也容許使用DSA密碼等)

httpd-userdir.conf                配置用戶主目錄的輔配置文件

UserDir public_html

用戶主目錄設置:目錄名是當一個請求到達時追加到用戶的家目錄。注意你必須爲這些目錄設置默認的訪問控制

httpd-vhosts.conf                 配置虛擬主機的配置文件  

若是要保留多個域名/主機在你的服務器上,你能夠爲它們設置虛擬主機。大部分的配置使用基於域名的虛擬主機,因此不須要擔憂IP地址問題,這一點能夠在下面經過星號來表示。

提供了虛擬主機實例

Apache中prefork和worker兩種工做模式的區別

worker模塊佔用的內存較小,對於流量大的網站來講,是一個比較好的選擇。

prefork雖然佔用比較大的內存,不過速度和worker差別並不大,並且prefork

內存使用設計較爲優秀,能夠在不少沒法提供debug的平臺上面進行自我排錯,

因此默認的模塊就是用的prefork這個。

簡單的說,worker是基於線程的工做模式,prefork是基於進程的工做模式

worker會派生出一些進程,每一個進程下啓動多個線程來提供服務,

worker的進程不會提供服務,他是專門用來管理進程的,網絡上有的文檔中說到

基於worker模式下的Apache若是某一個進程下的某一個線程崩潰,那麼這個進程

下面全部的線程將所有崩潰掉,而後由管理進程來重啓線程。工做在worker模式下的

Apache能夠大大的提升併發能力。可是線程安全性較差,若是使用worker模式的Apache

不如選擇使用一樣工做在線程下的Nginx來替代。

prefork並不支持很大的併發處理能力

配置虛擬主機注意事項:

注意1:

NameVirtualHost 指定虛擬主機所使用的IP地址或域名,可是最好是IP地址。使用基於域名的虛擬主機時,NameVirtualHost是必要的指令。NameVirtualHost能夠定義多個。

注意2:

全部符合NameVirtualHost或<VirtualHost>標籤訂義的請求,都會被做爲虛擬主機處理,而主服務器將不理會。NameVirtualHost定義了而<VirtualHost>標籤沒有定義的的請求,服務器會找不到相應的虛擬主機而將沒法處理。因此每一個NameVirtualHost定義的參數至少要有一個<VirtualHost>相匹配。注意3:

若是設置NameVirtualHost 或<VirtualHost>爲*:80的話,全部針對80端口的請求,都會被虛擬主機處理,請求會根據域名指向某個虛擬主機。若是有來自80端口的請求,而所請求的域名沒有被配置爲虛擬主機,那將指向第一個虛擬主機。這樣主服務器將沒法收到來自80端口的任何請求。爲此也要爲主服務器配置一個虛擬主機。

DocumentRoot 網站目錄(注意:若是網站目錄中的路徑有空格,請在路徑兩端加上雙引號)ServerName 要綁定的域名(必填)

ServerAlias 要綁定的虛擬主機的別名。(可選,若是多個域名,中間以空格分隔,若是沒有,則去掉該行)支持*,?兩種通配符,好比*.abc.com,表示任意一個abc.com的二級域名均可訪問。CustomLog 用戶日誌文件(可選,若是不須要,則去掉該行)ErrorLog 錯誤日誌(可選,若是不須要,則去掉該行)

注意4

虛擬主機中必定要添加

<Directory 目錄>

    Order allow,deny
    Allow from all

</Directory>

由於默認是拒絕全部,如不添加,客戶端將無權限訪問。

相關文章
相關標籤/搜索