天天看點

Apache配置

Apache 配置

一、apache簡介:

1、Apache是最流行的web伺服器,它開放源代碼,支援挂平台應用(linux、Unix、windows)。

2、Apache的優點:

(1)功能強大,apache自帶了很多功能子產品,可根據要求編譯所需的子產品

(2)配置簡單,/usr/local/apache/conf/httpd.conf

(3)速度快,apache處理靜态頁面檔案效率高

(4)性能穩定,apache在高負荷請求下性能表現卓越

3、apache的缺點:

(1)隻支援靜态網頁,對于jsp、php等動态網頁不支援

(2)apache是以程序為基礎的結構,程序要比線程消耗更多的系統資源,不适合多處理器環境;是以在一個Apache Web站點擴容時,通常是增加伺服器或擴充群集節點而不是增加處理器。

二、apache安裝

tar zxvf httpd-2.2.9.tar.gz

cd http-2.2.9

./configure

--prefix=/usr/local/apache配置apache的安裝目錄

--enable-so 讓apache核心裝載DSO

--enable-modules=all将所有子產品編譯到httpd檔案中

--enable-mods-shared=all動态加載所有子產品

--enable-rewrite 使apache支援位址重寫

--enable-cgi 啟用cgi

--enable-expires添加檔案過期限制,緩存在用戶端有效時間内不會再去通路伺服器

--enable-headers 檔案頭資訊改寫,網頁壓縮功能需要

--enable-deflate網頁壓縮,可達40%,節省帶寬,但對cpu有一定壓力

make

make install

三、apache的目錄結構

Apache配置

1、bin:apache服務程式目錄(腳本)

2、lib:庫檔案目錄

3、conf:配置檔案目錄

4、logs:日志檔案目錄

5、htdocs:預設網頁根目錄

6、cgi-bin:預設cgi目錄

7、modules:動态加載子產品目錄

8、manual:apache使用文檔目錄

9、man:幫助文檔目錄

10、error:預設錯誤應答檔案目錄

11、include:頭檔案目錄

12、icons:apache圖示檔案目錄

四、apache配置檔案

1、/usr/local/apache/conf/httpd.conf

Apache主配置檔案,配置對整個apache生效

2、/usr/local/apache/bin/apachectl  start/restart/stop

Apache管理腳本,它自動檢測httpd.conf的設定,配置錯誤會導緻啟動錯誤

3、/usr/local/apache/bin/httpd

httpd是一個啟動apache的二進制檔案

4、/usr/local/apache/modules/

Apache是子產品化的web伺服器,所有編譯的子產品都會放在此目錄,然後在httpd.conf檔案中指定加載的子產品和子產品的位置

5、/usr/local/apache/logs/access_log

Apache通路日志

6、/usr/local/apache/logs/error_log

Apache錯誤日志

7、/usr/local/apache/logs/httpd.pid

Apache守護程序号檔案

五、httpd.conf配置

1、全局變量

(1)ServerRoot  "/usr/local/apache"

ServerRoot用于指定守護程序httpd的運作目錄

(2)PidFile logs/httpd.pid

PidFile指定的檔案将記錄httpd守護程序的程序号,由于httpd能自動複制,是以apache啟動後系統會有多個httpd程序,但隻有一個程序為最初的啟動程序,它為其他程序的父程序,對父程序發送信号将影響所有的httpd程序。如果不指定PidFile,将把此檔案預設放在logs/httpd.pid

(3)Timeout 300

Timeout用來定義用戶端和伺服器程式連接配接的逾時間隔,機關為秒;超過這個時間,伺服器将斷開與用戶端的連結

(4)KeepAlive on

Keepalive用于定義是否允許使用者建立永久連接配接,on允許,off拒絕。當要打開一個含有很多圖檔頁面,完全可以建立一個tcp連接配接将所有資訊從伺服器傳到用戶端,而沒必要對每個圖檔都建立一個tcp連接配接,Keepalive建議設為on

(5)MaxKeepAliveRequests  100

MaxKeeoAliveRequests用來定義一個tcp連接配接可以進行http請求的最大次數,0為無限制。當KeepAlive設定為on時,此項才生效。

(6)KeepAliveTimeout 5

KeepAliveTimeout用來限定一次連接配接中最後一次請求完成後延時等待的時間,超過這個時間,伺服器就斷開連接配接

(7)Listen 80

Apache的監聽端口,可以更改

2、配置主伺服器

(1)User nobody

Group nobody

定義httpd的使用者群組,預設由nobody啟動apache

(2)ServerAdmin [email protected]

ServerAdmin設定網站管理者的郵件位址,當apache出現問題時會發郵件到此位址

(3)ServerName www.example.com:80

ServerName指定系統的主機名,如果沒有制定則會以hostname為依據,設定的主機名一定能與ip對應起來(/etc/hosts設定)

(4)UseCanonicalName off

UseCanonicalName用來設定是否使用标準的主機名,如果設定為on,則以ServerName指定的主機名為主,如果web主機有多個主機名,則應設為off(預設設為off)

(5)DocumentRoot /usr/local/apache/htdocs/

DocumentRoot設定網頁的根目錄,此目錄可以是一個連結

(6)<Directory />

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    Deny from all

</Directory>

上面這段是對DocumentRoot指定目錄的權限設定

(a)<Directory />指定的就是DocumentRoot

(b)Options表示在這個目錄内能夠執行的操作:

l  Indexes:此參數表示如果在DocumentRoot指定的目錄下找不到以index大頭的檔案,就将此目錄下所有的檔案列出來。這個參數高危,不使用

l  FollowSymLinks:表示在DocumentRoot指定目錄下允許符号連結到其他目錄

l  ExecCGI:表示允許在DocumentRoot指定的目錄下執行CGI操作

l  Includes:準許SSI操作

l  MultiViews:不常用,根據語言的不同顯示不同的資訊提示

(c)AllowOverride,通過設定AllowOverride的值決定是否讀取目錄中的.htaccess檔案,來改變原來所設定的權限,參數All:可以讀取.htaccess檔案來修改原有的的權限;None:表示不可以讀取.htaccess檔案,權限統一控制

(d)Order,用來控制目錄和檔案的通路授權

l  Deny,Allow:表示先檢查禁止的設定,再檢查允許的設定

l  Allow,Deny:表示先檢查允許的設定,再檢查禁止的設定

Order用來控制通路規則Allow與Deny的生效順序

例:apache.org域中所有主機,除了foo.apache.org子域包含的主機被拒絕以外,其他都允許通路。而所有不在apache.org域中的主機都不允許通路,因為預設狀态是拒絕對伺服器的通路。

Order Allow,Deny

Allow from apache.org

Deny from foo.apache.org

另一方面,如果上個例子中的Order指令改變為"Deny,Allow",将允許所有主機的通路。這是因為,不管配置檔案中指令的實際順序如何,"Allow from apache.org"指令會最後被評估到并覆寫之前的"Deny from foo.apache.org"。所有不在apache.org域中的主機也允許通路是因為預設狀态被改變到了允許。

(7)DirectoryIndex index.html index.htm index.php index.jsp

對apache預設首頁的設定,參數的先後順序就是網頁打開的先後順序

(8)UserDir public_html

UserDir用于設定使用者個人首頁存放的目錄,預設為public_html,例netadmin的個人首頁/home/netadmin/ public_html

(9)AccessFileName .htaccess

定義每個使用者目錄下的通路控制檔案的檔案名,預設為.htaccess

(10)TypesConfig conf/mime.types

TypesConfig定義在哪裡查詢mime.types檔案

(11)HostnameLookups off

HostnameLookups用來指定apache日志記錄通路端位址是ip還是域名,off—ip,on—域名,建議設為off

(12)ErrorLog logs/error_log

指定錯誤日志的位置

(13)CustomLog logs/access_log common

指定apache通路日志檔案的位置和記錄日志的模式

(14)ServerTokens Full

ServerTokens定義在HTTP回應頭中的資訊類型,預設為Full,顯示所有資訊,可設為Full/OS/Minor/Minimal/Major/Prod,Prod顯示的資訊最少

(15)ServerSignature on

ServerSignature有三個參數,on表示在apache的出錯頁面會顯示apache的版本以及加載子產品的資訊,email與on相同,但還會多出一個郵件位址連結,off則不顯示任何資訊。

(16)ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">

    Options None

    Order allow,deny

    Allow from all

預設在/usr/local/apache2/cgi-bin目錄下具有CGI的腳本執行權限。

3、虛拟主機的設定

(1)NameVirtualHost *

表示啟用虛拟主機,如果開啟虛拟主機則DocumentRoot指令則失效,以虛拟主機指定的DocumentRoot為主

(2)<VirtualHost *:80>

   ServerAdmin [email protected]

   DocumentRoot /www/docs/dummy-host.example.com

   ServerName dummy-host.example.com

   ServerAlias www.dummy-host.example.com

   ErrorLog logs/dummy-host.example.com-error_log

   CustomLog logs/dummy-host.example.com-access_log common

</VirtualHost>

l  ServerAdmin:虛拟主機管理者的email

l  DocumentRoot:指定虛拟主機的網頁根目錄

l  ServerName:虛拟主機的域名

l  ServerAlias:虛拟主機名稱

l  ErrorLog:指定虛拟主機錯誤日志的位置

l  CustomLog:指定虛拟主機通路日志的位置和格式

六、提示

由于apache的版本不同,是以不同版本的apache在安裝和配置上會有所不同;舊版本的apache的配置大多在httpd.conf上,而新版本的httpd.conf被簡化了,很多的配置都放在了conf/extra相應的檔案中

上一篇: apache服務
下一篇: 初學Apache