ホームページ  >  記事  >  php教程  >  apache は mod_cache を使用して画像などをキャッシュします。

apache は mod_cache を使用して画像などをキャッシュします。

黄舟
黄舟オリジナル
2016-12-21 11:38:041316ブラウズ

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.jpeg

2、[zhangy@BlackGhost エラー]をチェック $ top -b - n1

3、画像を参照 http://localhost/images/myself.jpeg

4、[zhangy@BlackGhost エラー]を確認 $ top -b -n1

6018 zhangy 20 0 52612 8172 2484 S 0 0.8 0: 00.03 httpd

6020 ジャンギー 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 httpd

6022 ジャンギー 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 bash

6076 張ギー 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 httpd

6078 ジャンジー 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 httpd

6080 ジャンギー 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)!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。