當前位置:首頁 » 文件管理 » apache緩存靜態文件

apache緩存靜態文件

發布時間: 2022-09-23 23:53:39

❶ 誰熟悉APACHE的緩存配置

Apache中關於頁面緩存的設置

Expires、Cache-Control、Last-Modified、
ETag是RFC
2616(HTTP/1.1)協議中和網頁緩存相關的幾個欄位。前兩個用來控制緩存的失效日期,後兩個用來驗證網頁的有效性。要注意的是,
HTTP/1.0有一個功能比較弱的緩存控制機制:Pragma,使用HTTP/1.0的緩存將忽略Expires和Cache-Control頭。我們
這里以Apache2.0伺服器為例,只討論HTTP/1.1協議。

Expires

Expires欄位聲明了一個網頁或URL地址不再被瀏覽器緩存的時間,一旦超過了這個時間,瀏覽器都應該聯系原始伺服器。RFC告訴我們:「由於推斷的失效時間也許會降低語義透明度,應該被謹慎使用,同時我們鼓勵原始伺服器盡可能提供確切的失效時間。」

對於一般的純靜態頁面,如html、gif、jpg、css、js,默認安裝的Apache伺服器,不會在響應頭添加這個欄位。Firefox瀏覽

器接受到相應後,如果發現沒有Expires欄位,瀏覽器根據文件的類型和「Last-Modified」欄位來推斷出一個合適的失效時間,並存儲在客戶
端。推測出的時間一般是接受到響應時間後的三天左右。

Apache的expires_mole模塊可以在Http響應頭部自動加上Expires欄位。在Apache的httpd.conf文件中進行如下配置:

#啟用expires_mole模塊
LoadMole expires_mole moles/mod_expires.so
# 啟用有效期控制
ExpiresActive On
# GIF有效期為1個月
ExpiresByType image/gif A2592000
# HTML文檔的有效期是最後修改時刻後的一星期
ExpiresByType text/html M604800
#以下的含義類似
ExpiresByType text/css 「now plus 2 month」
ExpiresByType text/js 「now plus 2 day」
ExpiresByType image/jpeg 「access plus 2 month」
ExpiresByType image/bmp 「access plus 2 month」
ExpiresByType image/x-icon 「access plus 2 month」
ExpiresByType image/png 「access plus 2 month」

對於動態頁面,如果在頁面內部沒有通過函數強制加上Expires,例如header(」Expires: 」 . gmdate(」D, d M
Y H:i:s」) . 」 GMT」),Apache伺服器會把Wed, 11 Jan 1984 05:00:00 GMT
作為Expires欄位內容,返回給瀏覽器。即認為動態頁面總是失效的。而瀏覽器仍然會保存已經失效的動態頁面。

可以發現Firefox瀏覽器總是緩存所有頁面,不管失效、不失效還是沒有聲明失效時間。即使緩存中聲明了一個網頁的實效日期是1970-01-
01 08:00:00,瀏覽器仍然會發送該文件在緩存中的Last-Modified和ETag欄位。
如果在伺服器端驗證通過,返回304狀態,瀏覽器就還會使用此緩存。

Cache-Control

Cache-Control欄位中可以聲明多些元素,例如no-cache, must-revalidate,
max-age=0等。這些元素用來指明頁面被緩存最大時限,如何被緩存的,如何被轉換到另一個不同的媒介,以及如何被存放在持久媒介中的。但是任何一個
Cache-Control指令都不能保證隱私性或者數據的安全性。「private」和「no-store」指令可以為隱私性和安全性方面提供一些幫
助,但是他們並不能用於替代身份驗證和加密

Apache的mod_cern_meta模塊允許文件級Http響應頭部的控制,同時它也可以配置Cache-Control頭(或任何其他頭)。響應頭文件是放在原始目錄的子目錄中,根據原始文件名所命名的一個文件。具體用法請參閱Apache的官方網站。

其中Cache-Control :
max-age表示失效日期。如果沒有啟動mod_cern_meta模塊,Apache伺服器會把Expires欄位中的日期換算成以秒為單位的一個
delta值,賦值給max-age。如果啟動mod_cern_meta模塊,並且配置了max-age值,Apache會將這個覆蓋Expires字
段。同時,max-age隱含了Canche-Control: public。這樣瀏覽器接受到的Cache-Control :
max-age和Expires值就是一致的。

如果失效日期Cache-Control : max-ag=0或者是負值,瀏覽器會在對應的緩存中把Expires設置為1970-01-01 08:00:00。

Last-Modified

Last-Modified和ETag是條件請求(Conditional
Request)相關的兩個欄位。如果一個緩存收到了針對一個頁面的請求,它發送一個驗證請求詢問伺服器頁面是否已經更改,在HTTP頭裡面帶上」
ETag」和」If Modify Since」頭。伺服器根據這些信息判斷是否有更新信息,如果沒有,就返回HTTP 304(Not
Modify);如果有更新,返回HTTP 200和更新的頁面內容,並且攜帶新的」ETag」和」Last-Modified」。

使用這個機制,能夠避免重復發送文件給瀏覽器,不過仍然會產生一個HTTP請求。

一般純靜態頁面本身都會有Last-Modified信息,Apache伺服器會讀取頁面文件中的Last-Modified信息,並添加到http響應頭部。

對於動態頁面,如果在頁面內部沒有通過函數強制加上Last-Modified,例如header(」Last-Modified: 」 .
gmdate(」D, d M Y H:i:s」) . 」
GMT」),Apache伺服器會把當前時間作為Last-Modified,返回給瀏覽器。

無論是純靜態頁面還是動態頁面,Firefox瀏覽器巧妙地按照接受到伺服器響應的時間設置緩存頁面的Last-Modified,而不是按照http響應頭部中的Last-Modified欄位。

ETag

既然有了Last-Modified,為什麼還要用ETag欄位呢?因為如果在一秒鍾之內對一個文件進行兩次更改,Last-Modified就會不正確。因此,HTTP/1.1利用Entity Tag頭提供了更加嚴格的驗證。

Apache伺服器默認情況下,會對所有的靜態、動態文件的響應頭添加ETag欄位。

在Apache的httpd.conf文件中可以通過FileETag指令配置該選項。FileETag指令配置了當文檔是基於一個文件時用以創建
Etag(entity tag)響應頭的文件的屬性。在Apache
1.3.22及以前,ETag的值是對文件的索引節(INode),大小(Size)和最後修改時間(MTime)進行Hash後得到的。
如果一個目錄的配置包含了『FileETag INode MTime Size』而其一個子目錄包含了『FileETag
-INode』那麼這個子目錄的設置(並會被其下任何沒有進行覆蓋的子目錄繼承)將等價於『FileETag MTime Size』。

在多台負載平衡的伺服器環境下,同一個文件會有不同的etag或者文件修改日期,瀏覽器每次都會重新下載。設置『FileETag None』可以使響應頭不再包含ETag欄位。

❷ discuz論壇用apache實現URL偽靜態......

系統管理界面里有開啟偽靜態或靜態緩存之類的選項
你可以用管理員身份進入設置的。
你給的地址貌似是dede的cms不是discuz的cms也就是dz
7.0
這個是dz
7.0的下載
http://www.comsenz.com/downloads/install

❸ htaccess 文件是什麼一定要支持該文件嗎

用這個吧,只適用於apache
### mod_expires
ExpiresActive On
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType image/x-icon A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/gif A2592000
### mod_expires

A後面是緩存的時間,單位為秒,中間是文件mime類型。
不支持mod_expires的話再通過設置頭信息的方法吧。
filesmatch的引號裡面是正則表達式,只改括弧內的即可。
<FilesMatch 「.(ico|jpg|jpeg|png|gif|swf)$」>
Header set Cache-Control 「max-age=2592000, public」
</FilesMatch>

❹ 如何設置Apache流量伺服器作為一個反向代理在Ubuntu 14.04

先決條件
要遵循本教程,您需要:
一個Ubuntu 14.04 Droplet
一個非root用戶Sudo
至少1 GB的交換空間
第1步 - 安裝流量伺服器
由於流量伺服器可在Ubuntu 14.04的默認存儲庫,可以使用安裝它apt-get 。在這樣做之前,請確保更新您的包索引文件。sudo apt-get update && sudo apt-get install trafficserver
默認情況下,流量伺服器偵聽埠8080。您可以使用瀏覽器訪問 / your_server_ip :8080/現在。但是,您將看到錯誤,因為您尚未配置它。
第2步 - 安裝Web伺服器
根據定義,代理伺服器充當外部用戶和web伺服器之間的中介。因此,在開始配置流量伺服器之前,應該在計算機上安裝Web伺服器,如Apache HTTP Server。 安裝並使用啟動Apache apt-get 。sudo apt-get install apache2
您現在可以使用瀏覽器,訪問 // your_server_ip /看到Apache的歡迎頁面。
第3步 - 禁用對Web伺服器的遠程訪問
默認情況下,Apache在所有網路介面上接受連接。通過將其配置為僅在環回介面上接受連接,可以確保遠程用戶無法訪問連接。 打開ports.conf使用nano或您喜愛的文本編輯器。sudo nano /etc/apache2/ports.conf
搜索包含的行Listen 80的指令並將其更改為:
ports.conf
Listen 127.0.0.1:80

保存並退出文件。 接下來,打開apache2.conf 。sudo nano /etc/apache2/apache2.conf
在文件末尾添加以下行:
apache2.conf
ServerName localhost
保存並關閉文件。 要應用配置更改,請使用以下命令重新啟動Apache:sudo service apache2 restart
嘗試使用瀏覽器訪問h:// your_server_ip /一次。您的瀏覽器現在應該顯示錯誤,因為您阻止了對伺服器的遠程訪問。
第4步 - 將流量伺服器配置為反向代理
在此步驟中,我們將配置流量伺服器作為反向代理。要做到這一點,打開remap.config ,這是你應該修改定義流量伺服器的映射規則的文件。sudo nano /etc/trafficserver/remap.config
讓我們創建一個簡單的規則,說明對埠8080上的伺服器IP地址的所有請求都映射到Web伺服器的本地地址和埠。您可以通過將以下行添加到文件的末尾來實現:
remap.config
map ://your_server_ip:8080/://127.0.0.1:80/
保存文件並退出。 要激活新映射規則,使用reread_config的命令traffic_line :sudo traffic_line --reread_config
打開瀏覽器,訪問:// your_server_ip :8080/ 。如果您現在可以看到Apache的歡迎頁面,則您已成功將流量伺服器配置為反向代理。
第5步 - 配置流量伺服器緩存一切
默認情況下,流量伺服器將緩存只有當它包含一個HTTP響應Cache-Control或Expires頭顯式指定項目多長時間應儲存在緩存中。但是,由於我們的Web伺服器只提供靜態文件,因此可以安全地緩存其所有響應。 配置流量伺服器,使其緩存所有的HTTP響應,你應該改變稱為配置變數的值proxy.config.http.cache.required_headers為0。這可以通過使用進行set_var的命令traffic_line 。sudo traffic_line --set_var proxy.config.http.cache.required_headers --value 0
應用使用的變化reread_config標志。sudo traffic_line --reread_config
打開瀏覽器,訪問h:// your_server_ip :8080/一次。這將在Traffic Server的緩存中存儲Apache歡迎頁面。
第6步 - 檢查緩存
要查看Traffic Server的緩存的內容,您可以使用名為Cache Inspector的工具,它具有基於Web的界面。 要激活工具,設置的值proxy.config.http_ui_enabled配置變數設置為1。sudo traffic_line --set_var proxy.config.http_ui_enabled --value 1
接下來,創建一個映射規則,指定要用於訪問它的路徑。打開remap.config再次使用nano 。sudo nano /etc/trafficserver/remap.config
讓我們緩存督察可用/inspect 。 要做到這一點,在文件的頂部添加以下行:
remap.config
map http://your_server_ip:8080/inspect http://{cache}
保存文件並退出。 要應用更改,請重新啟動Traffic Server。

❺ org.apache.catalina.core.applicationcontextfade 是什麼包

nginx+apache結合使用。
既然兩者各有優勢,那我們就揚長避短,nginx做前端負責進行抗並發、負載均衡、做靜態文件緩存,後端採用apache處理動態請求。

❻ 如何進行網站性能優化

一、前端優化

網站性能優化是一個很綜合的話題,涉及到伺服器的配置和網站前後端程序等各個方面,我只是從實際經歷出發,分享一下自己所嘗試過的網站性能優化方法。之所以在標題上掛一個web2.0,是因為本文更偏重於中小網站的性能優化,我所使用的系統也是典型web2.0的LAMP架構。

首先講講前端的優化,用戶訪問網頁的等待時間,有80%是發生在瀏覽器前端,特別是頁面和頁面中各種元素(圖片、CSS、javascript、 flash…)的下載之上。因此在很多情況下,相對於把大量的時間花在艱苦而繁雜的程序改進上,前端的優化往往能起到事半功倍的作用。雅虎最近將內部使用的性能測試工具yslow向第三方公開,並發布了著名的網站性能優化的十三條規則,建議你下載並安裝yslow,並作為測評網站優化效果的工具。下面我挑其中特別有價值的具體說明一下優化的方法:

對於第一次訪問您網站,尚未在瀏覽器cache中緩存您網站內容的用戶,我們可以做的事情包括:

1)減少一個頁面訪問所產生的http連接次數
對於第一次訪問你網站的用戶,頁面所產生的http連接次數是影響性能的一個關鍵瓶頸。

對策:
- 盡量簡潔的頁面設計,最大程度減少圖片的使用,通過放棄一些不必要的頁面特效來減少javascript的使用。
- 使用一些優化技巧,比如利用圖片的背景位移減少圖片的個數;image map技術;使用Inline images將css圖片捆綁到網頁中。
- 盡量合並js和css文件,減少獨立文件個數。

2) 使用gzip壓縮網頁內容
使用gzip來壓縮網頁中的靜態內容,能夠顯著減少用戶訪問網頁時的等待時間(據說可達到60%)。主流的web伺服器都支持或提供gzip壓縮,如果使用apache伺服器,只需要在配置文件中開啟 mod_gzip(apache1.x)或mod_deflate(apache2.x)即可。凡是靜態的頁面,使用gzip壓縮都能夠顯著提高伺服器效率並減少帶寬支出,注意圖片內容本身已經是壓縮格式了,務必不要再進行壓縮。

3)將CSS放在頁面頂端,JS文件放在頁面底端
CSS的引用要放在html的頭部header中,JS文件引用盡量放在頁面底端標簽的後面,主要的思路是讓核心的頁面內容盡早顯示出來。不過要注意,一些大量使用js的頁面,可能有一些js文件放在底端會引起一些難以預料的問題,根據實際情況適當運用即可。

4)使JS文件內容最小化
具體來說就是使用一些javascript壓縮工具對js腳本進行壓縮,去除其中的空白字元、注釋,最小化變數名等。在使用gzip壓縮的基礎上,對js內容的壓縮能夠將性能再提高5%。

5)盡量減少外部腳本的使用,減少DNS查詢時間
不要在網頁中引用太多的外部腳本,首先,一次dns的解析過程會消耗20-120毫秒的時間;其次,如果在頁面中引用太多的外部文件(如各種廣告、聯盟等代碼),可能會因為外部文件的響應速度而將你的網站拖得很慢。如果不得不用,那麼就盡量將這些腳本放在頁腳吧。不過有一點需要提及,就是瀏覽器一般只能並行處理同一域名下的兩個請求,而對於不同子的域名則不受此限制,因此適當將本站靜態內容(css,js)放在其他的子域名下(如 static.xxx.com)會有利於提高瀏覽器並行下載網頁內容的能力。

對於您網站的經常性訪問用戶,主要的優化思路就是最大限度利用用戶瀏覽器的cache來減少伺服器的開銷。

1)在header中添加過期時間(Expires Header)
在header中給靜態內容添加一個較長的過期時間,這樣可以使用戶今後訪問只讀取緩存中的文件,而不會與伺服器產生任何的交互。不過這樣做也存在一些問題,當圖片、CSS和js文件更新時,用戶如果不刷新瀏覽器,就無法獲得此更新。這樣,我們在對圖片、css和js文件修改時,必須要進行重命名,才能保證用戶訪問到最新的內容。這可能會給開發造成不小的麻煩,因為這些文件可能被站點中的許多文件所引用。flickr提出的解決辦法是通過url rewrite使不同版本號的URL事實上指向同一個文件,這是一個聰明的辦法,因為url級別的操作效率是很高的,可以給開發過程提供不少便利。

要理解為什麼這樣做,必須要了解瀏覽器訪問url時的工作機制:
a. 第一次訪問url時,用戶從伺服器段獲取頁面內容,並把相關的文件(images,css,js…)放在高速緩存中,也會把文件頭中的expired time,last modified, ETags等相關信息也一同保留下來。
b. 用戶重復訪問url時,瀏覽器首先看高速緩存中是否有本站同名的文件,如果有,則檢查文件的過期時間;如果尚未過期,則直接從緩存中讀取文件,不再訪問伺服器。
c. 如果緩存中文件的過期時間不存在或已超出,則瀏覽器會訪問伺服器獲取文件的頭信息,檢查last modifed和ETags等信息,如果發現本地緩存中的文件在上次訪問後沒被修改,則使用本地緩存中的文件;如果修改過,則從伺服器上獲取最新版本。

我的經驗,如果可能,盡量遵循此原則給靜態文件添加過期時間,這樣可以大幅度減少用戶對伺服器資源的重復訪問。

2)將css和js文件放在獨立外部文件中引用
將css和js文件放在獨立文件中,這樣它們會被單獨緩存起來,在訪問其他頁面時可以從瀏覽器的高速緩存中直接讀取。一些網站的首頁可能是例外的,這些首頁的自身瀏覽可能並不大,但卻是用戶訪問網站的第一印象以及導向到其他頁面的起點,也可能這些頁面本身使用了大量的ajax局部刷新及技術,這時可以將 css和js文件直接寫在頁面中。

3)去掉重復的腳本
在IE中,包含重復的js腳本會導致瀏覽器的緩存不被使用,仔細檢查一下你的程序,去掉重復引用的腳本應該不是一件很難的事情。

4)避免重定向的發生
除了在header中人為的重定向之外,網頁重定向常在不經意間發生,被重定向的內容將不會使用瀏覽器的緩存。比如用戶在訪問,伺服器會通過301轉向到/,在後面加了一個「/」。如果伺服器的配置不好,這也會給伺服器帶來額外的負擔。通過配置apache的 alias或使用mod_rewrite模塊等方法,可以避免不必要的重定向。

還有一些,比如使用CDN分發機制、避免CSS表達式等、避免使用ETags等,因為不太常用,這里就不再贅述了。

做完了上述的優化,可以試著用yslow測試一下網頁的性能評分,一般都可以達到70分以上了。

當然,除了瀏覽器前端和靜態內容的優化之外,還有針對程序腳本、伺服器、資料庫、負載的優化,這些更深層次的優化方法對技術有更高的要求。本文的後半部分將重點探討後端的優化。

二、後端優化

上次寫完web2.0網站前端優化篇之後,一直想寫寫後端優化的方法,今天終於有時間將思路整理了出來。

前端優化可以避免我們造成無謂的伺服器和帶寬資源浪費,但隨著網站訪問量的增加,僅靠前端優化已經不能解決所有問題了,後端軟體處理並行請求的能力、程序運 行的效率、硬體性能以及系統的可擴展性,將成為影響網站性能和穩定的關鍵瓶頸所在。優化系統和程序的性能可以從以下的方面來入手:

1)apache、mysql等軟體的配置的優化
盡管apache和mysql等軟體在安裝後使用的默認設置足以使你的網站運行起來,但是通過調整mysql和apache的一些系統參數,還是可以追求更高的效率和穩定性。這個領域中有很多專業的文章和論壇(比如: ),要想掌握也需要進行深入的研究和實踐,這里就不重點討論了。

2)應用程序環境加速
這里僅以我最常應用的php開發環境為例,有一些工具軟體可以通過優化PHP運行環境來達到提速的目的,其基本原理大致是將PHP代碼預編譯並緩存起來,而不需要改變任何代碼,所以比較簡單,可以將php的運行效率提升50%以上。比較常用的php加速工具有:APC( http: //pecl.php.net/package-info.php?package=APC)、Turck MMCache( )、php accelebrator(),還有收費的Zend Performance Suite

3)將靜態內容和動態內容分開處理
apache是一個功能完善但比較龐大的web server,它的資源佔用基本上和同時運行的進程數呈正比,對伺服器內存的消耗比較大,處理並行任務的效率也一般。在一些情況下,我們可以用比較輕量級的web server來host靜態的圖片、樣式表和javascript文件,這樣可以大大提升靜態文件的處理速度,還可以減少對內存佔用。我使用的web server是來自俄羅斯的nginx,其他選擇方案還包括lighttpd和thttpd等。

4)基於反向代理的前端訪問負載均衡
當一台前端伺服器不足以應付用戶訪問時,通過前端機實現web訪問的負載均衡是最快速可行的方案。通過apache的mod_proxy可以實現基於反向代理的負載均衡,這里推薦使用nginx做代理伺服器,處理速度較apache更快一些。

5)應用緩存技術提高資料庫效能,文件緩存和分布式緩存
資料庫訪問處理並發訪問的能力是很多網站應用的關鍵瓶頸,在想到使用主從結構和多farm的方式構建伺服器集群之前,首先應該確保充分使用了資料庫查詢的緩存。一些資料庫類型(如mysql的innoDB)自身內置對緩存的支持,此外,還可以利用程序方法將常用的查詢通過文件或內存緩存起來。比如通過 php中的ob_start和文件讀寫函數可以很方便的實現文件形式的緩存,而如果你擁有多台伺服器,可以通過memcache技術通過分布式共享內存來對資料庫查詢進行緩存,不僅效率高而且擴展性好,memcache技術在livejournal和Craigslist.org等知名網站應用中都得到了檢驗。

6)伺服器運行狀態的檢測,找到影響性能的瓶頸所在
系統優化沒有一勞永逸的方法,需要通過檢測伺服器的運行狀態來及時發現影響性能的瓶頸,以及可能存在的潛在問題,因為網站的性能,永遠取決於木桶中的短板。可以編寫一些腳本來檢測web服務的運行,也有一些開源的軟體也提供了很好的功能

7)良好的擴展架構是穩定和性能的基礎
一些技巧和竅門可以幫你度過眼前的難關,但要想使網站具備應付大規模訪問的能力,則需要從系統架構上進行徹底的規劃,好在很多前人無私的把他們架構
網站的經驗分享給我們,使我們可以少走甚多彎路。我最近讀到的兩篇有啟發的文章:
- 從LiveJournal後台發展看大規模網站性能優化方法
- Myspace的六次重構

最後不得不提到程序編碼和資料庫結構對性能的影響,一系列糟糕的循環語句,一個不合理的查詢語句、一張設計不佳的數據表或索引表,都足以會使應用程序運行的速度成倍的降低。培養全局思考的能力,養成良好的編程習慣,並對資料庫運行機制有所了解,是提高編程質量的基礎。

❼ 如何設置靜態內容緩存時間

你好,
一、打開IIS,滑鼠右鍵你要設置的網站,然後「屬性」

(第一步操作)

二、選擇「HTTP頭」選項卡,勾選「啟用內容過期」,選中「立即過期」,然後「確定」。

(第二步操作)

解釋一下這一步的效果。設置此網站所有內容都不進行緩存,也就是每次訪問都全新載入。

三、展開網站,找到要進行緩存的目錄。(一般是存放上傳文件、圖片、JS等文件的目錄)然後「滑鼠右鍵」----「屬性」

(第三步操作)

四、選擇「HTTP頭」選項卡,勾選「啟用內容過期」,選中「此時間段後過期」,設置過期時間,然後「確定」

(第四步操作)

OK,這時候已經設置成功了。

❽ 請教一些LAMP網站建設的問題

Apache是LAMP架構最核心的Web Server,開源、穩定、模塊豐富是Apache的優勢。但Apache的缺點是有些臃腫,內存和CPU開銷大,性能上有損耗,不如一些輕量級的Web伺服器(例如nginx)高效,輕量級的Web伺服器對於靜態文件的響應能力來說遠高於Apache伺服器。
Apache做為Web Server是負載PHP的最佳選擇,如果流量很大的話,可以採用nginx來負載非PHP的Web請求。nginx是一個高性能的HTTP和反向代理伺服器,Nginx以它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。Nginx不支持PHP和CGI等動態語言,但支持負載均衡和容錯,可和Apache配合使用,是輕量級的HTTP伺服器的首選。
Web伺服器的緩存也有多種方案,Apache提供了自己的緩存模塊,也可以使用外加的Squid模塊進行緩存,這兩種方式均可以有效的提高Apache的訪問響應能力。Squid Cache是一個Web緩存伺服器,支持高效的緩存,可以作為網頁伺服器的前置cache伺服器緩存相關請求來提高Web伺服器的速度,把Squid放在Apache的前端來緩存Web伺服器生成的動態內容,而Web應用程序只需要適當地設置頁面實效時間即可。如訪問量巨大則可考慮使用memcache作為分布式緩存。
PHP的加速使用eAccelerator加速器,eAccelerator是一個自由開放源碼PHP加速器,優化和動態內容緩存,提高了性能PHP腳本的緩存性能,使得PHP腳本在編譯的狀態下,對伺服器的開銷幾乎完全消除。它還有對腳本起優化作用,以加快其執行效率。使PHP程序代碼執效率能提高1-10倍。
具體的解決方案有以下幾種:
1、squid + Apache + PHP + eAccelerator
使用Apache負載PHP,使用squid進行緩存,html或圖片的請求可以直接由squid返回給用戶。很多大型網站都採用這種架構。
2、nginx/Apache + PHP(fastcgi) + eAccelerator
使用nginx或Apache負載PHP,PHP使用fastcgi方式運行,效率較高。
3、nginx + Apache + PHP + eAccelerator
此方案綜合了nginx和Apache的優點,使用Apache負載PHP,nginx負責解析其他Web請求,使用nginx的rewrite模塊,Apache埠不對外開放。
資料庫
開源的資料庫中,MySQL在性能、穩定性和功能上是首選,可以達到百萬級別的數據存儲,網站初期可以將MySQL和Web伺服器放在一起,但是當訪問量達到一定規模後,應該將MySQL資料庫從Web Server上獨立出來,在單獨的伺服器上運行,同時保持Web Server和MySQL伺服器的穩定連接。
當資料庫訪問量達到更大的級別,可以考慮使用MySQL Cluster等資料庫集群或者庫表散列等解決方案。
總的來說,LAMP架構的網站性能會遠遠優於Windows IIS + ASP + Access(例如月光博客)這樣的網站,可以負載的訪問量也非常大,國內的大量個人網站如果想要支撐大訪問量,採用LAMP架構是一個不錯的方案。
綜上所述,基於LAMP架構設計具有成本低廉、部署靈活、快速開發、安全穩定等特點,是Web網路應用和環境的優秀組合。

❾ 關於apache的緩存

B伺服器,但其豐富的功能對於一個新手來說往往不知道從何下手。我個人感覺Apache的設計充分體現了模塊化設計的優勢,通過在動態模塊載入(DSO)模式下的安裝,任何子應用模塊都可以通過配置文件的簡單修改進行積木式的靈活配置。安裝的過程可以從簡單的靜態html服務開始,一個模塊一個模塊的學習使用。從單純的HTML靜態服務(core),到復雜的動態頁面服務(core + php, core + resin, core + php + mod_gzip, core + resin + mod_expire)。

本文主要從簡化安裝==>性能調優==>維護方便的角度,介紹了WEB服務的規劃、HTTPD安裝/應用模塊配置、升級/維護等過程。讓Apache和PHP,Resin等應用模塊的獨立升級,完全互不影響。

WEB應用容量規劃:根據硬體配置和WEB應用的特點進行WEB服務的規劃及一些簡單的估算公式;
Apache安裝過程:apache的通用的簡化安裝選項,方便以後的應用的模塊化配置;
修改 HARD_SERVER_LIMIT:
vi /path/to/apache_src/src/include/httpd.h
#define HARD_SERVER_LIMIT 2560 <===將原來的 HARD_SERVER_LIMIT 256 後面加個「0」
apache編譯:
./configure --prefix=/home/apache --enable-shared=max --enable-mole=most
可選應用模塊/工具的安裝:php resin mod_gzip mod_expire及各個模塊之間的配合;
mod_php安裝:./configure --with-apxs=/home/apache/bin/apxs --enable-track-vars --with-mysql
mod_resin安裝:./configure --with-apxs=/home/apache/bin/apxs
mod_gzip安裝:修改Makefile中的 apxs路徑:然後make make install
工具:日誌輪循工具cronolog安裝:
升級/維護:看看通用和模塊化的安裝過程如何簡化了日常的升級/維護工作;
按照以上的方法:系統管理員和應用管理員的職責可以清楚的分開,互相獨立。
系統安裝:系統管理員的職責就是安裝好一台DSO模式的Apache,然後COLON即可,
應用安裝:由應用管理員負責具體應用所需要的模塊,比如PHP Resin等,並設置httpd.conf中相關的配置。
系統升級:系統管理員:升級操作系統/升級Apache
應用升級:應用管理員:升級應用模塊,PHP Resin等。
WEB應用的容量規劃

Apache主要是一個內存消耗型的服務應用,我個人總結的經驗公式:
apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2
apache_max_process = apache_max_process_with_good_perfermance * 1.5

為什麼會有一個apache_max_process_with_good_perfermance和apache_max_process呢?原因是在低負載下系統可以使用更多的內存用於文件系統的緩存,從而進一步提高單個請求的響應速度。在高負載下,系統的單個請求響應速度會慢不少,而超過 apache_max_process,系統會因為開始使用硬碟做虛擬內存交換空間而導致系統效率急劇下降。此外,同樣的服務:2G內存的機器的 apache_max_process一般只設置到1G內存的1.7倍,因為Apache本身會因為進程過多導致性能下降。

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

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

熱點內容
集群伺服器地址都是一樣的嗎 發布:2024-10-10 01:07:39 瀏覽:325
java怎麼開平方 發布:2024-10-10 01:02:25 瀏覽:486
windowsserver更新伺服器搭建 發布:2024-10-10 00:42:32 瀏覽:657
kz解壓縮 發布:2024-10-10 00:27:19 瀏覽:668
方舟編譯器呢 發布:2024-10-10 00:13:41 瀏覽:914
阿里雲伺服器安裝圖形 發布:2024-10-09 23:40:45 瀏覽:863
cb編譯器怎麼下 發布:2024-10-09 23:37:38 瀏覽:8
編譯translation 發布:2024-10-09 23:24:23 瀏覽:10
伺服器cpu能供多少電腦使用 發布:2024-10-09 23:05:21 瀏覽:351
演算法和嵌入式 發布:2024-10-09 23:04:34 瀏覽:556