1. はじめに
画像と静的ファイルのキャッシュについては、以前に 2 つの記事を書きました。1 つは、squid を使用したキャッシュです。もちろん、Apache を使用して画像と静的ファイルをキャッシュすることもできます。インストールと設定を完了する方法を詳しく説明します
次に、mod_cache、mod_mem_cache、mod_disk_cacheをインストールします
まず、Apacheをインストールするときにこれらのモジュールがインストールされているかどうかを確認してください。インストールされていない場合は、モジュールをインストールする方法を参照してください。 apache がインストールされているか確認してください
[zhangy@BlackGhost error]$ /usr/local/apache2/bin/httpd -l
mod_cache.c、mod_mem_cache.c、mod_disk_cache.c がない場合は、mod_mem_cache を意味しますmod_disk_cache と mod_disk_cache はインストールされていません。インストールするには、2 つのうちの 1 つを選択できます
3 つのメモリ キャッシュ設定
nano /usr/local/apache2/conf/httpd.conf
LoadModule queue_module modules/mod_cache.so
< ;IfModule mod_cache.c>
LoadModule mem_cache_module modules/mod_mem_cache.so
CacheEnable mem /images
MCacheSize 4096
MCacheRemovalAlgorithm LRU
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 204 8
CacheMaxExpire 864000
CacheDefaultExpire 86400
CacheDisable /php
説明:
1、CacheEnable mem /images は画像の下のコンテンツをキャッシュします。ここでの mem は単なるキャッシュ タイプであり、mod_cache にメモリ ストレージ マネージャーを使用するよう指示します。 mod_mem_cache を実装することによって。キャッシュ タイプ ディスクは、mod_cache に mod_disk_cache のディスクベースのストレージ管理実装を使用するように指示します。キャッシュ タイプ、fd は mod_cache にファイル記述子キャッシュ実装 mod_mem_cache
2、MCacheSize の最大メモリ使用量、キャッシュに挿入されたオブジェクトとオブジェクト サイズが残りのメモリより大きい場合、新しいオブジェクトがキャッシュできるまで削除されます。 削除されたオブジェクトは、指定されたアルゴリズム MCacheRemovalAlgorithm
3、MCacheRemovalAlgorithm キャッシュ アルゴリズムを使用して選択されます:
LRU (最近使用されていないもの)
LRU は、アクセス時間が最も長くないファイルを削除します。
GDSF (GreadyDual サイズ)
GDSF は、ファイル料金、キャッシュ サイズ、ミスに基づいて優先ファイル キャッシュを割り当てます。優先度が最も低いファイルが最初に削除されます。
4 デフォルトのキャッシュ有効期限9、CacheDisable /php は php の下のコンテンツをキャッシュしませんメモリにキャッシュされているかどうかを確認しますapache でメモリにキャッシュされたものがあるかどうかを確認しますが、確認するのは簡単ではありません、チェックするための特別なツールはありません。私の方法は次のとおりです。1、画像を参照 http://localhost/images/http_imgload.cgi.jpeg2、[zhangy@BlackGhost エラー]をチェック $ top -b - n13、画像を参照 http://localhost/images/myself.jpeg4、[zhangy@BlackGhost エラー]を確認 $ top -b -n16018 zhangy 20 0 52612 8172 2484 S 0 0.8 0: 00.03 httpd6020 ジャンギー 20 0 52604 8168 2488 S 0 0.8 0:00.02 httpd
6021 ジャンギー 20 0 52604 8100 2440 S 0 0.8 0:00.00 httpd6022 ジャンギー 20 0 52604 81 00 2440 S 0 0.8 0:00.00 httpd
6033張ギー 20 0 6584 1808 1396 S 0 0.2 0:00.02 bash6076 張ギー 20 0 52612 8136 2464 S 0 0.8 0:00.02 httpd
6077 張ギー 20 0 52612 8124 8 S 0 0.8 0: 00.05 httpd6078 ジャンジー 20 0 52612 8168 2488 S 0 0.8 0:00.12 httpd
6079 ジャンギー 20 0 52612 8168 2488 S 0 0.8 0:00.03 httpd6080 ジャンギー 20 0 52612 8168 2488 S 0 0.8 0:00.06 httpd
60 81 ジャンギー 20 0 52612 8116 2448 S 0 0.8 0:00.00 httpd
上記の 4 を介して段階的に操作すると、上記の太字の RES が継続的に増加していることがわかります。このことから、構成が成功していることがわかります。
4、ハードディスクキャッシュ構成
nano /usr/local/apache2/conf/httpd.conf
LoadModule キャッシュ_モジュール モジュール/mod_cache.so
LoadModule ディスク_キャッシュ_モジュール モジュール/mod_disk_cache.so
CacheRoot /home/zhangy/cachetest
#CacheSize 2 56
キャッシュ有効化ディスク/
CacheDirLevels 4
#CacheMaxFileSize 64000
#CacheMinFileSize 1
#CacheGcDaily 23:59
CacheDirLength 3
説明:キャッシュルート /home/zhangy/cachetest ディレクトリキャッシュが保存されます
2, #CacheSize 256 キャッシュ領域のサイズ単位 KB
3, CacheEnable ディスク / キャッシュモードの設定
4, #CacheMaxFileSize 64000 最大キャッシュファイルサイズ
5, #CacheMinFileSize 1 最小キャッシュファイルサイズ
6 , #CacheGcDaily 23:59 キャッシュのクリーンアップ時間
7, CacheDirLength 3 キャッシュフォルダー名のサブ文字の長さ
8, CacheDirLevels 4 キャッシュディレクトリ、サブディレクトリレベル
コメントアウトされた部分は私の Apache バージョンではサポートされていません。公式マニュアルに載ってますよ。具体的な要件については、公式 Web サイトを参照してください
キャッシュを確認します:
1.cacheroot に何かがあるかどうかを確認します
CacheRoot の下に何かあれば、それは OK であることを意味します。
2、htcacheclean を使用して表示します
[root@BlackGhost キャッシュ]# /usr/sbin/htcacheclean -v -p /home/zhangy/cachetest -l 1024M
統計:サイズ制限 1024.0M
合計サイズは 29.2K 、合計サイズは 29.2K になりました合計エントリ数は 3、合計エントリ数は 3 になりました
htcacheclean いくつかのパラメータの説明
-d キャッシュをクリアする頻度
-D はキャッシュのクリアをシミュレートしますが、実際には明確ではありません
- v 統計情報の表示
-r 完全クリア
-t 空のディレクトリをクリア
-p キャッシュディレクトリ
-l キャッシュサイズを制限
上記は、Apache が mod_cache を使用して画像などをキャッシュする内容です。その他の関連コンテンツ PHP 中国語 Web サイト (www.php.cn)!