apache關閉緩存
⑴ 關於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緩存怎麼清理
這個沒有一個固定的方法啊。畢竟不同的PHP程序有不同的緩存機制。
比如discuz吧,直接在後台——系統工具——更新緩存就可以了。
smarty是個模板生成機制,用於分離php和html,如果你的站點本來就沒有smarty,就不會有smarty生成的緩存,也不可能清除你要清除的緩存。
⑶ thinkphp5.0怎麼關閉緩存
ThinkPHP在數據緩存方麵包括文件方式、共享內存方式和資料庫方式在內的多種方式進行緩存,通過插件方式還可以增加以後需要的緩存類,讓應用開發可
以選擇更加適合自己的緩存方式,從而有效地提高應用執行效率。目前已經支持的緩存方式包括:File、Apachenote、Apc、
Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis和Xcache。
為了開發的方便,可以把緩存給去除。
1.找到ThinkPHPCommonconvention.php和ThinkPHPCommondebug.php
2.打開這兩個文件找到你想要的設置即可。
debug.php中
'TMPL_CACHE_ON'=>false, // 默認開啟模板緩存
復制代碼
convention.php中'
TMPL_CACHE_ON' => false, // 默認開啟模板編譯緩存 false 的話每次都重新編譯模板
'ACTION_CACHE_ON' => false, // 默認關閉Action 緩存
'HTML_CACHE_ON' => false, // 默認關閉靜態緩存
復制代碼
thinkphp 怎麼關閉全部緩存?(
APP_DEBUG=>true
DB_FIELD_CACHE=>false
HTML_CACHE_ON=>false
復制代碼
關閉ThinkPHP模板緩存
最後自己找見了,在config.php裡面加上一句
'TMPL_CACHE_ON' => false,
'TMPL_CACHE_ON' => false,
復制代碼
這樣每次運行都重新生成緩存
⑷ 誰熟悉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欄位。
⑸ apache伺服器 怎麼可以關閉
筆者提供方法:
1、右擊桌面上的計算機--》管理--》服務和應用程序--》服務--》點擊Apache--》點擊左側停止即可
2、右擊桌面右下角的Apache--》選擇exit即可
希望對你有幫助!!!
⑹ 如何在 Apache 中設置緩存有效時間
你好,
在 apache 中設置緩存有效時間方法:啟動和配置 Expires
打開 httpd.conf 文件(比如我的是在 F:\wamp\bin\apache\Apache2.2.17\conf 下),找到這一行:
復制代碼#LoadMole expires_mole moles/mod_expires.so
去掉注釋(井號),然後再加上這么兩行,再重啟下apache,就 ok 了:
復制代碼
ExpiresActive On
ExpiresByType text/html A1000
我們看到 max-age 欄位也出現在了響應頭中,其實它是根據 Expires 的設置自動填充的。
其他設置類似:復制代碼#啟用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 months"
ExpiresByType text/js "now plus 2 days"
ExpiresByType image/jpeg "access plus 2 months"
ExpiresByType image/bmp "access plus 2 months"
ExpiresByType image/x-icon "access plus 2 months"
ExpiresByType image/png "access plus 2 months"
⑺ phpstudy怎麼清除apache緩存
#ErrorLog "logs/error.log"
#CustomLog "logs/access.log" common
修改在apache目錄下的httpd.conf文件,注釋上面的兩行就行了。
⑻ 如何在 apache 中設置緩存有效時間
在 http 報文頭中,與緩存時間有關的兩個欄位是 Expires 以及 Cache-Control 中的 max-age,Expires 設定了一個緩存的過期時間,而 max-age 則設定了一個緩存有效時間(單位秒),通常情況下,兩者可以相互推得。(詳細參考 瀏覽器緩存機制淺析)
還是用 WampServer 舉例。我們在 www 文件夾下新建個 index.html 頁面,在瀏覽器中打開它,得到的 http 響應頭如下: