導航:首頁 > 文件教程 > apache配置靜態文件緩存

apache配置靜態文件緩存

發布時間:2023-05-06 21:50:01

⑴ apache設置靜態文件緩存影響cookie

Cookie的主要內容包括名字,值,過期時間,路徑和域,路徑和域共同構成了cookie的作用范圍,相當於一個key-value的返舉方式存在於客戶端。根據有無設置過期時間可分為 會話Cookie和持久Cookie,不設置過期時間,則是會話Cookie,這個Cookie的生命周期為瀏覽器會話期間伏世戚,關閉瀏覽器窗口,cookie就消失,若設置了過期時間,瀏覽器就會把cookie保存到硬碟上,關閉後再次打開瀏缺陵覽器,這些cookie仍然有效直到超過設定的過期時間。存儲在硬碟上的cookie可以在瀏覽器的不同進程間共享。

⑵ 誰有Apache 伺服器的配置詳細介紹

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伺服器都需要獨立的設置文件htt pd.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 5MaxSpareServers 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進程中重新復制一個干凈的副本,這樣就能提高系統的穩定性。這樣,每個子進程處理服務請求次數由MaxRe questPerChild定義。 預設的設置值為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偽靜態配置 htaccess 放哪裡

1.檢測Apache是否支持mod_rewrite 通過php提供的phpinfo()函數查看環境配置,通過Ctrl+F查找到「Loaded Moles」,其中列出了所有er已經開啟的模塊,如果裡麵包括「mod_rewrite」,則已經支持,不再需要繼續設置。
如果沒有開啟「mod_rewrite」,則打開目錄 您的apache安裝目錄「/apache/conf/」 下的 httpd.conf 文件,通過Ctrl+F查找到「LoadMole rewrite_mole」,將前面的」#」號刪除即可。
如果沒有查找到,則到「LoadMole」 區域,在最後一行加入「LoadMole rewrite_mole moles/mod_rewrite.so」(必選獨佔一行),然後重啟apache伺服器即可。

2.讓apache伺服器支持.htaccess
修改httpd.conf文件

Options FollowSymLinks
AllowOverride None
改為
Options FollowSymLinks
AllowOverride All

注意:除了要設置上面的地方以後,還得設置一下下面這個(網上很多資料都沒有講到這一塊),否則你將會配製失敗, 把 DocumentRoot 後面的參數改為你本地網站的目錄 例如你網站的根目錄為 D:/web/ 則得設置為 DocumentRoot "D:/web/" 也就是修改當前目錄

此步驟設置好後也得重啟apache伺服器才能生效

3.建立.htaccess 文件
新建 htaccess.txt
用記事本 打開,點擊文件–另存為,在文件名窗口輸入」.htaccess」,然後點擊保存。此文件得保存在網站的根目錄

4.填寫網站偽靜態規則 (需要 了解 正則表達式)

<IfMole mod_rewrite.c>

RewriteEngine on

RewriteRule index.html$ index.php
RewriteRule index-([1-9]+[0-9]*).html$ index.php?p=$1

</IfMole>

希望能夠幫到你和網上的其它朋友,曾經我也在上面絞盡腦汁。

⑷ Apache 配置

Apache 配置

1、下載apache

2、 ./configure

--prefix=/usr/local/apache2.2.32

--enable-deflate

--enable-headers

--enable-expires

--enable-moles=most

--enable-so

--with-mpm=worker

--enable-rewrite

3、 make

4、make install

配置文件

一、/usr/local/apache/conf/httpd.conf 內容解析

Server root 服務的根目錄

Listen 80 監聽的埠

Server admin [email protected]管理員郵箱

Servername www.yeyiboy.com 網站名

Documentroot /usr/local/apache/htdocs 站點目錄,需改成自己的站點目錄

表示根目錄拒絕其他人訪問

Options FollowSymLinks

AllowOverride None 禁止相關功能

Order deny,allow 不讓任何人訪問根目錄

Deny from all 不讓任何人訪問根目錄

新增加站點目錄,必須增加下面六行,否則網站打不開

把站點目錄/usr/local/apache2.2.32/htdocs改成自己的站點目錄

Options Indexes FollowSymLinks 如去掉Indexes,站點目錄如果沒有首頁也不會暴露站點目錄。為了安全,通常配置會去掉。

AllowOverride None

Order allow,deny

Allow from all

DirectoryIndex index.html 指定訪問首頁,如果有多個首頁,都列出,空格隔開

ErrorLog "logs/error_log" 錯誤日誌

去掉include conf/extra/ httpd-mpm.conf和include conf/extra/ httpd-vhosts.conf 前面的#號

二、/usr/local/apache/conf/extra 擴展的配置文件

1、 httpd-mpm.conf

工作模式為prefork模式。默認為該模式。#Apache共兩種模式,prefork和worker

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestsPerChild 0

工作模式為worker模式,編譯時已指定為worker模式。

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

2、 httpd-vhosts.conf 配置網站大部分在這里配置

NameVirtualHost *:80 基於域名的服務,一個主機想跑多個網站在這里配置

3、httpd-default.conf 了解

Timeout 300 超時

KeepAlive On 連接保持

MaxKeepAliveRequests 100 最大接受多少個連接

KeepAliveTimeout 5 等待下一個連接時間

AccessFileName .htaccess 設置偽靜態

ServerTokens Full 隱藏apache版本

ServerSignature On 隱藏apache版本

FQDN 完整的域名解析

錯誤報告:httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

Syntax OK

解決辦法: vim /usr/local/apache/conf/httpd.conf

把 servername www.example.com:80 增加成servername 127.0.0.1:80

⑸ Apache2怎麼配置偽靜態 詳細點 iis我就會 我電腦是xp的裝iis比較麻煩

你有正確的規則不,apache的偽靜態規則文件應該是http.conf這個文件,iis則是http.ini,把http.conf放在嘩型更目者腔錄,然後在修改下apache的配置文件,在亂嫌猜conf目錄下httpd.conf中找到
LoadMole rewrite_mole moles/mod_rewrite.so,保存就OK

⑹ 如何設置Apache伺服器的緩沖區大小

你說的是緩存大小吧

Apache的緩存方式有兩種,一種是基於硬碟文件的緩存,由mod_disk_cache實現,另一種是使用內存緩存,由mod_mem_cache實現,不過它們都是依賴mod_cache模塊的,mod_cache模塊提供了一些緩存配置的指令供它們使用,而mod_file_cache模塊是搭配mod_mem_cache模塊使用的,下面分別進行介紹。


1、基於硬碟文件的緩存
基於硬碟文件存儲的緩存由mod_disk_cache模塊實現,先看個簡單的配置例子:
<IfMolemod_cache.c>
CacheDefaultExpire86400
<IfMolemod_disk_cache.c>
CacheEnabledisk/
CacheRoot/tmp/apacheCache
CacheDirLevels5
CacheDirLength4
CacheMaxFileSize1048576
CacheMinFileSize10
</IfMole>
</IfMole>


把上面的配置加到Apache的httpd.conf文件中,如果緩存相關的模塊都已經編譯進了Apache的核心,則無需載入模塊,直接就能使用上面的指令。指令的詳細說明如下:
CacheDefaultExpire:設定緩存過期的時間(秒),默認是1小時,只有當緩存的文檔沒有設置過期時間或最後修改時間時這個指令才會生效
CacheEnable:啟用緩存,第1個參數是緩存類弄,這里當然是disk了,第2個參數是緩存路徑,指的是url路徑,這里是緩存所有的東西,直接寫上「/」即可,如「/docs」則只緩存/docs下的所有文件
CacheRoot:緩存文件所在的目錄,運行Apache的用戶(如daemon或nobody)要能對其進行讀寫,如果不清楚的話可以直接設置成777,請手動建立該目錄並設置好訪問許可權
CacheDirLevels:緩存目錄的深度,默認是3,這里設置為5
CacheDirLength:緩存目錄名的字元長度,默認是4,這里設置為5
CacheMaxFileSize和CacheMaxFileSize:緩存文件的最大值和最小值(byte),當超過這個范圍時將不再緩存,這里設置為1M和10bytes
基於硬碟文件存儲的文件基本上就這些內容,設置好後重啟Apache應該就能使用了。一切正常的話,可以在緩存目錄下看到Apache自動建立的一些目錄和緩存的數據文件。
2、基於內存的緩存
基於內存的緩存主要由mod_mem_cache模塊實現,還是看個簡單的配置吧,這樣比較直觀:-)
<IfMolemod_cache.c>
<IfMolemod_mem_cache.c>
CacheEnablemem/
MCacheMaxObjectCount20000
MCacheMaxObjectSize1048576
MCacheMaxStreamingBuffer65536
MCacheMinObjectSize10
MCacheRemovalAlgorithmGDSF
MCacheSize131072
</IfMole>
</IfMole>
簡單說一下上面一些指令的意思:
CacheEnable:啟用緩存,使用基於內存的方式存儲
MCacheMaxObjectCount:在內存中最多能存儲緩存對象的個數,默認是1009,這里設置為20000
MCacheMaxObjectSize:單個緩存對象最大為1M,默認是10000bytes
MCacheMaxStreamingBuffer:在緩沖區最多能夠放置多少的將要被緩存對象的尺寸,這里設置為65536,該值通常小於100000或MCacheMaxObjectSize設置的值
MCacheMinObjectSize:單個緩存對象最小為10bytes,默認為1bytes
MCacheRemovalAlgorithm:清除緩存所使用的演算法,默認是GDSF,還有一個是LRU,可以查一下Apache的官方文檔,上面有些介紹
MCacheSize:緩存數據最多能使用的內存,單位是kb,默認是100kb,這里設置為128M
保存重啟Apache基於內存的緩存系統應該就能生效了,根據需要可以使基於內存的存儲或硬碟文件的存儲方式一起使用,只要指明不同的URL路徑即可。
3、注意事項
使用緩存需要注意如下事項:
要使用緩存,必須使用指令CacheEnable啟用它,目前可用的緩存類型為disk或mem,禁止緩存可以使用CacheDisable,如CacheDisable/private
待緩存的URL返回的狀態值必須為:200、203、300、301或410
URL的請求方式必須是GET方式
發送請求時,頭部中包含「Authorization:」的字元串時,返回的內容將不會被緩存
URL包含查詢字元串,如問號?後的那些東西,除非返回的內容包含「Expires:」,否則不會被緩存
如果返回的狀態值是200,則返回的頭部信息必須包含以下的一種才會被緩存:Etag、Last-Modified、Expires,除非設置了指令CacheIgnoreNoLastModOn
如果返回內容的頭部信息「Cache-Control:」中包含「private」,除非設置了指令CacheStorePrivateOn,否則不會被緩存
如果返回內容的頭部信息「Cache-Control:」中包含「no-sotre」,除非設置了指令CacheStoreNoStoreOn,否則不會被緩存
如果返回內容的頭部信息「Vary:」中包含了「*」,不會被緩存

⑺ apache2.2 反向代理 配置css js靜態文件

1.先去掉下面兩行的注釋

LoadMole proxy_mole
moles/mod_proxy.so

LoadMole proxy_http_mole
moles/mod_proxy_http.so

2.然後在最後增加

ProxyPass /images !
ProxyPass /css !
ProxyPass /js !
ProxyPass / http://localhost:8080/這個也可以寫為:

ProxyPass
/oa
http://localhost:8080/oa
ProxyPassReverse
/oa
http://localhost:8080/oa

也可以連續增加以上兩行,就是多個tomcat啟動

ProxyPass /meb http://192.168.6.103:8081/meb
ProxyPassReverse /meb http://192.168.6.103:8081/meb

⑻ apache-httpd的三種模式

apache httpd-2.4

新增模塊;

mod_proxy_fcgi(可提供 fcgi 代理)

mod_ratelimit(限制用戶帶寬)

mod_request(請求模塊,對請求做過濾)

mod_remoteip(匹配客戶端的 IP 地址)

對於基於 IP 的訪問控製做了修改,不再支持 allow,deny,order 機制,而是統一使用 require進行

還新增以下幾條新特性;

1、MPM 支持在運行時裝載;不過要開啟這慧信種特性,在編譯安裝要啟用這三種功能;

--enable-mpms-shared=all --with-mpm=event

2、支持 event

3、支持非同步讀寫

4、在每個模塊及每個目錄上指定日誌級別

5、增強版的表達式分析器

6、每請求配置:<If>, <Elseif>

7、毫秒級別的 keepalive timeout

8、基於 FQDN 的虛擬主機不再需要 NameVirtualHost 指令

9、支持使用自定義變數

安裝時HTTPd 可以添加許多模塊

相關模塊解析:

--enable-so:支持動態共享模塊(即打開 DSO 支持)

--enable-rewrite:支持 url 重寫

--enable-ssl:前基輪支持 ssl

--with-ssl=/usr/local/openssl:指定 ssl 安裝位置

--enable-cgi:啟用 cgi

--enable-cgid:MPM 使用的是 event 或 worker 要啟用 cgid

--enable-moles=most:明確指明要靜態編譯到 httpd 二進制文件的模塊,<MODULE-LIST>為

空格分隔的模塊名列表、all 或者 most,all 表示包含所有模塊,most 表示包含大部分常用模



--enable-mpms-shared=all:啟用 MPM 所有支持的模式,這樣 event、worker、prefork 就會以

模塊化的方式安裝,要用哪個就在 httpd.conf 里配置就好了。

--with-mpm=event:指定啟用的 mpm 模式,默認使用 enevt 模式,在 apache 的早期版本 2.0

默認 prefork,2.2 版本是 worker,2.4 版本是 event.

--with-pcre=/usr/local/pcre:支持 pcre

--with-z=/usr/local/zlib:使用 zlib 壓縮庫

--with-apr=/usr/local/apr:指定 apr 的安裝路徑

--with-apr-util=/usr/local/apr-util:指定 apr-util 的安裝路徑

--enable-expires:激活彧通過配置文件控制 HTTP 的「Expires:」和「Cache-Control:」頭內容,即

對網站圖片、js、css 等內容,提供客戶端瀏覽器緩存的設置。這個是 apache 調優的一個重

要選項之一。

--enable-deflate:提供對內容的壓縮傳輸編碼支持,一般是 html、js、css 等內容的站點。使

用此參數會打打提高傳輸速度,提升訪問者訪問的體驗。在生產環境中,這是 apache 調優

的一個重要選項之一。

Apache 的優化配置:

apache 所運行的硬體環境都是對性能影響最大的因素,即使不能對鋒橋硬體進行升級,也最好

給 apache 一個單獨的主機以免受到其他應用的干擾。各個硬體指標中,對性能影響最大的

是內存,對於靜態內容(圖片、javascript 文件、css 文件等),它決定了 apache 可以緩存多

少內容,它緩存的內容越多,在硬碟上讀取內容的機會就越少,大內存可以極大提高靜態站

點的速度;對動態高負載站點來說,每個請求保存的時間更多一些,apache 的 mpm 模塊會

為每個請求派生出相應的進程或線程分別處理,而進程或線程的數量與內存的消耗近似成正

比,因此增大內存對提高動態站點的負載和運行速度也極為有利

其次是硬碟的速度,靜態站點尤為突出,apache 不斷的在讀取文件並發送給相應的請求,

硬碟的讀寫是極其頻繁的;動態站點也要不斷的載入 web 程序(php 等),一個請求甚至要讀

取十幾個文件才能處理完成,因此盡可能的提高硬碟速度和質量對提高 apache 的性能是有

積極意義的。

最後是 cpu 和網路,cpu 影響的是 web 程序執行速度,網路影響流量大小。

apache  的工作模式:

Apache HTTP 伺服器被設計為一個強大的、靈活的能夠在多種平台以及不同環境下工作的服

務器。這種模塊化的設計就叫做「多進程處理模塊」(Multi-Processing Mole,MPM),也叫

做工作模式。

Prefork 模式(一個非線程型的):

其主要工作方式是:當 Apache 伺服器啟動後,mpm_prefork 模塊會預先創建多個子進程(默

認為 5 個),每個子進程只有一個線程,當接收到客戶端的請求後,mpm_prefork 模塊再將

請求轉交給子進程處理,並且每個子進程同時只能用於處理單個請求。如果當前的請求數將

超過預先創建的子進程數時,mpm_prefork 模塊就會創建新的子進程來處理額外的請求。

Apache 總是試圖保持一些備用的或者是空閑的子進程用於迎接即將到來的請求。這樣客戶

端的請求就不需要在接收後等候子進程的產生。

由於在 mpm_prefork 模塊中,每個請求對應一個子進程,因此其佔用的系統資源相對其他

兩種模塊而言較多。不過 mpm_prefork 模塊的優點在於它的每個子進程都會獨立處理對應

的單個請求,這樣,如果其中一個請求出現問題就不會影響到其他請求。Prefork 在效率上

要比 Worker 要高,但是內存使用大得多不擅長處理高並發的場景。

Apache 在 prefork 工作模式下影響性能的重要參數說明

# prefork MPM

<IfMole mpm_prefork_mole>

StartServers 5

#apache 啟動時候默認開始的子進程數

MinSpareServers 5

#最小的閑置子進程數

MaxSpareServers 10

#最大的閑置子進程數

MaxRequestWorkers 250

#MaxRequestWorkers 設 置 了 允 許 同 時 的 最 大 接 入 請 求 數 量 。 任 何 超 過MaxRequestWorkers 限制的請求將進入等候隊列,在 apache2.3.1 以前的版本

MaxRequestWorkers 被稱為 MaxClients,舊的名字仍舊被支持。

MaxConnectionsPerChild 500

#設置的是每個子進程可處理的請求數。每個子進程在處理了「MaxConnectionsPerChild」

個請求後將自動銷毀。0 意味著無限,即子進程永不銷毀。雖然預設設為 0 可以使每個

子進程處理更多的請求,但如果設成非零值也有兩點重要的好處:1、可防止意外的內

存泄漏。2、在伺服器負載下降的時侯會自動減少子進程數。因此,可根據伺服器的負

載來調整這個值。在 Apache2.3.9 之前稱之為 MaxRequestsPerChild。

</IfMole>

注 1:MaxRequestWorkers 是這些指令中最為重要的一個,設定的是 Apache 可以同時處理

的請求,是對 Apache 性能影響最大的參數。如果請求總數已達到這個值(可通過 ps -ef|grep

http|wc -l 來確認),那麼後面的請求就要排隊,直到某個已處理請求完畢。這就是系統資源

還剩下很多而 HTTP 訪問卻很慢的主要原因。雖然理論上這個值越大,可以處理的請求就越

多,建議將初始值設為(以 Mb 為單位的最大物理內存/2),然後根據負載情況進行動態調整。

比如一台 4G 內存的機器,那麼初始值就是 4000/2=2000。

注 2:prefork 控制進程在最初建立「StartServers」個子進程後,為了滿足 MinSpareServers 設

置的需要創建一個進程,等待一秒鍾,繼續創建兩 個,再等待一秒鍾,繼續創建四個……如

此按指數級增加創建的進程數,最多達到每秒 32 個,直到滿足 MinSpareServers 設置的值為

止。這種模式 可以不必在請求到來時再產生新的進程,從而減小了系統開銷以增加性能。

MaxSpareServers 設置了最大的空閑進程數,如果空閑進程數大於這個 值,Apache 會自動 kill

掉一些多餘進程。這個值不要設得過大,但如果設的值比 MinSpareServers 小,Apache 會自

動把其調整為 MinSpareServers+1。如果站點負載較大,可考慮同時加大 MinSpareServers 和

MaxSpareServers。

注 3:ServerLimit 和 MaxClients(MaxRequestWorkers)有什麼區別呢?

是因為在 apache1 時代,控制最大進程數只有 MaxClients 這個參數,並且這個參數最大值為

256,並且是寫死了的,試圖設置為超過 256 是無效的,這是由於 apache1 時代的伺服器硬

件限制的。但是 apache2 時代由於伺服器硬體的升級,硬體已經不再是限制,所以使用

ServerLimit 這個參數來控制最大進程數,ServerLimit 值>=MaxClient 值才有效。ServerLimit

要放在 MaxClients 之前,值要不小於 MaxClients。

注 4:查看 Apache 載入的模塊

[root@www ~]#apachectl -t -D DUMP_MODULES



[root@www ~]# apachectl -M



[root@www ~]# apachectl –l (小寫 L,只顯示靜態模塊)

如何查看 Apache 的工作模式呢?可以使用 httpd -V 命令查看,另外使用 httpd -l 也可以查

看到

注 5:如何修改 prefork 參數和啟用 prefork 模式

1.[root@www ~]# vi /usr/local/http-2.4.23/conf/extra/httpd-mpm.conf

2.[root@www ~]# vi /usr/local/http-2.4.23/conf/httpd.conf

LoadMole mpm_prefork_mole moles/mod_mpm_prefork.so

Include conf/extra/httpd-mpm.conf

3 重啟httpd

Worker 模式(多線程多進程):

和 prefork 模式相比,worker 使用了多進程和多線程的混合模式,worker 模式也同樣會先預

派生一些子進程,然後每個子進程創建一些線程,同時包括一個監聽線程,每個請求過來會

被分配到一個線程來服務。線程比起進程會更輕量,因為線程是通過共享父進程的內存空間,

因此,內存的佔用會減少一些,在高並發的場景下會比 prefork 有更多可用的線程,表現會

更優秀一些;另外,如果一個線程出現了問題也會導致同一進程下的線程出現問題,如果是

多個線程出現問題,也只是影響 Apache 的一部分,而不是全部。由於用到多進程多線程,

需要考慮到線程的安全了,在使用 keep-alive 長連接的時候,某個線程會一直被佔用,即使

中間沒有請求,需要等待到超時才會被釋放(該問題在 prefork 模式下也存在)

總的來說,prefork 方式速度要稍高於 worker,然而它需要的 cpu 和 memory 資源也稍多於

woker。

Apache 在 worker 工作模式下影響性能的重要參數說明

# worker MPM

<IfMole mpm_worker_mole>

StartServers 3

#apache 啟動時候默認開始的子進程數

MinSpareThreads 75

#最小空閑數量的工作線程

MaxSpareThreads 250

#最大空閑數量的工作線程

ThreadsPerChild 25

#每個子進程產生的線程數量

MaxRequestWorkers 400

#與 prefork 模式相同

MaxConnectionsPerChild 0

#與 prefork 模式相同

</IfMole>

注 1:Worker 由主控制進程生成「StartServers」個子進程,每個子進程中包含固定的

ThreadsPerChild 線程數,各個線程獨立地處理請求。同樣, 為了不在請求到來時再生成線

程,MinSpareThreads 和 MaxSpareThreads 設置了最少和最多的空閑線程數;

而 MaxRequestWorkers 設置了同時連入的 clients 最大總數。如果現有子進程中的線程總數不

能滿足負載,控制進程將派生新的子進程

MinSpareThreads 和 MaxSpareThreads 的最大預設值分別是 75 和 250。這兩個參數對 Apache

的性能影響並不大,可以按照實際情況相應調節 。

注 2:ThreadsPerChild 是 worker MPM 中與性能相關最密切的指令。ThreadsPerChild 的最大

預設值是 64,如果負載較大,64 也是不夠的。這時要顯式使用 ThreadLimit 指令,它的最大

預設值是 20000。

注 3:Worker 模式下所能同時處理的請求總數是由子進程總數乘以 ThreadsPerChild 值決定

的,應該大於等於 MaxRequestWorkers。如果負載很大,現有的子進程數不能滿足時,控制

進程會派生新的子進程。默認最大的子進程總數是 16,加大時 也需要顯式聲明 ServerLimit

(系統配置的最大進程數量,最大值是20000)。需要注意的是,如果顯式聲明了 ServerLimit,

那麼它乘以 ThreadsPerChild的值必須大於等於MaxRequestWorkers,而且MaxRequestWorkers

必須是 ThreadsPerChild 的整數倍,否則 Apache 將會自動調節到一個相應值。

注 4:進程與線程的區別

線程是指進程內的一個執行單元,也是進程內的可調度實體.

與進程的區別:

(1)地址空間:進程內的一個執行單元;進程至少有一個線程;它們共享進程的地址空間;而進程

有自己獨立的地址空間;

(2)資源擁有:進程是資源分配和擁有的單位,同一個進程內的線程共享進程的資源

(3)線程是處理器調度的基本單位,但進程不是.

(4)二者均可並發執行.

進程和線程都是由操作系統所體會的程序運行的基本單元,系統利用該基本單元實現系統對

應用的並發性。

進程和線程的區別在於:

簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.

線程的劃分尺度小於進程,使得多線程程序的並發性高。

另外,進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大地提高了程

序的運行效率。

Event 模式:

這是 Apache 最新的工作模式,是 worker 模式的變種,它把服務進程從連接中分離出來,一

worker 模式不同的是在於它解決了 keep-alive 長連接的時候佔用線程資源被浪費的問題,在

event 工作模式中,會有一些專門的線程用來管理這些 keep-alive 類型的線程,當有真實請

求過來的時候,將請求傳遞給伺服器的線程,執行完畢後,又允許它釋放。這增強了在高並

發場景下的請求處理。event 模式不能很好的支持 https 的訪問(HTTP 認證相關的問題)。

⑼ apache web伺服器怎麼配置圖片緩存

LoadMole cache_mole moles/mod_cache.so
LoadMole mem_cache_mole moles/mod_mem_cache.so
<IfMole mod_cache.c>
<IfMole mod_mem_cache.c>
CacheEnable mem /
# cache 40MB
MCacheSize 80960
MCacheMaxObjectCount 21000
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize 1
MCacheMaxObjectSize 74000
###GDSF 基於緩彎歷存命中率和文檔大小計算優先順序。在必要時,優先順序最低的文檔被移出緩飢雀存
##MCacheRemovalAlgorithm GDSF
#LRU 指定最長時間沒有用到的對象將在必要的時候移出緩存
MCacheRemovalAlgorithm LRU
</IfMole>

##傳輸壓縮
LoadMole deflate_mole moles/mod_deflate.so
<IfMole mod_deflate.c>爛鬧早
DeflateMemLevel 7
DeflateWindowSize 15
DeflateBufferSize 8096
DeflateCompressionLevel 7
AddOutputFilterByType DEFLATE DEFLATE text/html text/plain application/x-httpd-php application/x-javascript text/css
AddOutputFilter DEFLATE css js php xml js html
AddOutputFilter DEFLATE css #壓縮css文件
AddOutputFilter DEFLATE js #壓縮js文件
</IfMole>

閱讀全文

與apache配置靜態文件緩存相關的資料

熱點內容
不用網路載入的單機游戲有哪些 瀏覽:608
數據線插頭怎麼接頭 瀏覽:577
網路載入視頻失敗是怎麼回事 瀏覽:805
傳奇賬號在哪個文件夾里 瀏覽:346
百度app在哪裡安裝 瀏覽:587
如何設置路由器網路不斷網 瀏覽:471
傳到qq群里的文件怎麼刪除 瀏覽:861
索尼安卓71更新日誌 瀏覽:234
怎麼找手機里的垃圾app 瀏覽:540
2015藍橋杯代碼填空 瀏覽:698
安卓資料庫dbexecSQL 瀏覽:227
doc重命名文件格式 瀏覽:728
getscreen截圖工具下載 瀏覽:719
共識數據是什麼時候開始的 瀏覽:96
數碼管顯示電壓程序 瀏覽:479
資料庫文件有哪個 瀏覽:543
途強儲存在哪個文件夾 瀏覽:172
如何恢復被覆蓋文件 瀏覽:611
iphone5用哪個版本最好 瀏覽:327
extjsgrid禁用 瀏覽:426

友情鏈接