ウェブサイトの性能最適化-apache


Apacheモジュールmod_expires
ブラウザキャッシュ時間設定
説明は、設定ファイルを通じてHTTPの「Expires」と「Cache-Coontrol」のヘッダ内容を制御することができます。
モジュール名module
ソースファイルmod_エクササイズ.
例えば、下記の3つの命令はすべて文書のデフォルトの有効期間を表しています。
Expires Default「access plus 1 month」
Expires Default「access plus 4 weeks」
Expires Default「access plus 30 days」
Expires Activeコマンド
は、「Expires:」と「Cache-Coontrol:」のヘッダを生成する機能を有効または無効にすることを説明します。
文法Expires Active On𞓜Off
作用域server config,virtual host,directory,httaccess
カバー項目Indexes
モジュールmod_expires
Expiress ByType命令
MIMEタイプによって構成されるExpiresヘッダの値を説明する。
シンタックスExpiress ByType seconds作用域server config,virtual host,directory,httaccess
カバー項目Indexes
モジュールmod_expires
「M」はソースファイルの最終修正時刻を表し、「A」はクライアントがソースファイルに対するアクセス時刻を表します。
Expires Defaultコマンド
デフォルトの有効期間の計算方法を説明します。
シンタックスExpires Default seconds作用域server config,virtual host,directory,httaccess
カバー項目Indexes
モジュールmod_expires
例:
xi有効期限制御を有効にする
Expires Active On
菗書込httpヘッダmax-age=3600
header set cache-control「max-age=3600」
噫GIFの有効期間は1ヶ月です。
Expiress ByType p_w_picpath/gif A 2592000
󑧙HTML文書の有効期限は最後の修正時刻から一週間です。
Expiress ByType text/html M 604800
同時に存在する時誰が有効ですか?優先順位はありますか?AとMの違いはどのように表していますか?
Gzip圧縮:
gzipというのは、初期のapache 1.xシリーズの中でウェブページの圧縮技術がないので、gzip圧縮に行く必要があります。apache 2公式は開発時にすでにウェブページを圧縮して考慮に入れました。deflateモジュールですので、apache 2はmod_に使う必要がありません。gzipです。この二つの仕事の原理は似ています。またmod_を有効にします。deflateこのウェブページの圧縮のモジュール、機能と効率とmod_gzipは似ています。もっといいです。もうmod_を使う必要はありません。gzipモジュールです
Apacheモジュールmod_deflate
圧縮してクライアントに送信する内容について説明する。
状態拡張(E)
モジュール名deflate_module
ソースファイルmod_deflate.
少数タイプの圧縮プロファイルに対して
AddOutput FilterByType DEFLATE text/html
〓をフィルターに挿入する
SetOutput FilterdeFLATE
棤Netscate 4.xにはいくつかの問題があります。
BrowserMatch^Mozila/4 gzip-only-text/html
璜Netscape 4.06-4.08はもっと多くの問題があります。
BrowserMatch^Mozila/4\.0[678]no-gzip
›MSIEはNetscapeを装うことができますが、事実上は大丈夫です。
BrowserMatch\bMSIEno-gzipgzip-only-text/html
写真を圧縮しない
Set EnvIfNoCaseRequest_URI\
\.(?:gif|jpe?g|png)$no-gzip dont-vary
xiプロキシが間違った内容を送らないことを確保する。
Headerapped Vary User-Agentenv=!dont-vary
*圧縮は一切使用しません。430 KB*gzipのみ使用します。323 KB*deflateモジュールのみ使用します。247 KB
1、ハードディスクファイルによるキャッシュ
ハードディスクファイルによるキャッシュはmod_disk_cacheモジュールが実装されているので、簡単な構成例を先に見てください。
CacheDefault Expire 86400
CacheEnbale disk/
CacheRoot/tmp/apachek
CacheDirLevels 5
CacheDirLength 5
CacheMaxFileSize 104576
CacheminFileSize 10
上記の配置をApacheのhttpd.comファイルに加えると、キャッシュ関連のモジュールが既にApacheのコアにコンパイルされているなら、モジュールをロードする必要がなく、直接上の命令を使用することができます。命令の詳細は以下の通りです。
CachedefaultExpire:キャッシュの期限が切れた時間を設定します。デフォルトは1時間です。キャッシュされたドキュメントに期限が切れた時間や最後の変更時間が設定されていない場合にのみ、このコマンドが有効になります。
CacheEnbale:キャッシュを有効にして、1番目のパラメータはキャッシュクラスです。ここはもちろんdiskです。2番目のパラメータはキャッシュパスです。urlパスです。ここはキャッシュのすべてのものです。直接に「/」を書けばいいです。「docs」のようにキャッシュ/docsの下のすべてのファイルだけです。
CacheRoot:キャッシュファイルがあるディレクトリで、Apacheを実行するユーザ(daemenやnobodyなど)はそれを読み書きできるようにします。不明な場合は直接777に設定できます。マニュアルでこのディレクトリを作成し、アクセス権限を設定してください。
CacheDirLevels:キャッシュディレクトリの深さは、デフォルトでは3です。ここでは5に設定されています。
CacheDirLength:キャッシュディレクトリ名の文字長は、デフォルトでは4です。ここでは5に設定されています。
CacheMaxFileSizeとCacheMaxFileSize:キャッシュファイルの最大値と最小値(byte)は、この範囲を超えるとキャッシュされなくなります。ここで1 Mと10 bytesに設定します。
ハードディスクファイルに基づいて保存されているファイルは基本的にこれらの内容について設定してからApacheを再開すれば使用できるはずです。すべてが正常であれば、キャッシュディレクトリの下で、Appacheが自動的に作成したディレクトリとキャッシュされたデータファイルを見ることができます。
2、メモリベースのキャッシュ
メモリベースのキャッシュは主にmod_mem_cacheモジュールの実装は、簡単な配置を見てください。
CacheEnbale mem/
MCacheMaxObject Count 20000
MCacheMaxObject Size 104576
MCacheMaxStreaming Buffer 65536
MCacheMinObject Size 10
MCacheremoval Algorithm GDSF
MCacheSize 131072
上の命令の意味を簡単に説明します。
CacheEnbale:キャッシュを有効にし、メモリベースで保存する
MCacheMaxObject Count:メモリにキャッシュオブジェクトを最大記憶できる個数は、デフォルトは1009です。ここで20000に設定します。
MCacheMaxObject Size:単一キャッシュオブジェクトは最大1 Mで、デフォルトは10000 bytesです。
MCacheMaxStreaming Buffer:バッファエリアで最大どれぐらい置くことができますか?キャッシュされるオブジェクトのサイズは、ここで65536に設定されています。この値は通常100000またはMCacheMaxObject Sizeに設定された値より小さいです。
MCacheminObject Size:単一キャッシュオブジェクトは最小10 bytesで、デフォルトは1 bytesです。
MCacheremoval Algorithm:キャッシュをクリアするためのアルゴリズム、デフォルトはGDSF、もう一つはLRUです。Appacheの公式文書を調べてみてください。上にいくつかの紹介があります。
MCacheSize:キャッシュデータが一番多く使用できるメモリは、単位がkbで、デフォルトは100 kbで、ここは128 Mに設定されています。
Appacheを再起動するメモリベースのキャッシュシステムを保存すれば、有効になるはずです。必要に応じて、メモリベースのストレージやハードディスクファイルの記憶方法を一緒に使うことができます。異なるURLパスを指定すればいいです。
;serverlimit 768           serverlimit制限StartServers 5             初期起動プロセス数MinSpare Servers 5          空きプロセスの最小数MaxSpareServers 10         最大アイドルプロセス数MaxCients 384             最大同時処理要求数MaxRequests PerChild 0      単一プロセス処理要求数0は制限されない。
派生する
安定している
メモリを消耗する
ウォーカーの動作原理は、マスタープロセスによって「StartServers」のサブプロセスが生成され、各サブプロセスには固定されたThreadsPerChildスレッド数が含まれ、各スレッドは要求を独立に処理する。同様に、要求が来た時にスレッドを生成しないために、MinSpare ThreadsとMaxSpare Threadsは、最小と最大の空きスレッド数を設定している。MaxClienntsはすべてのサブプロセスのスレッド総数を設定しています。既存のサブプロセスのスレッド総数が負荷を満たしていない場合、制御プロセスは新しいサブプロセスに派生します。
MinSpare ThreadsとMaxSpare Threadsの最大デフォルト値はそれぞれ75と250です。この二つのパラメータはApacheの性能にあまり影響しません。実際の状況に応じて調整できます。
Threads PerChildはワーカーMPMの中で最も性能に関する命令である。Threads PerChildの最大デフォルト値は64であり、負荷が大きいと64も足りない。このとき、ThreadLimitコマンドを明示的に使用すると、最大デフォルト値は20000です。上記の2つの値はソースツリーserver/mpm/worker/worker.cの中の次の2つの行にあります。
璣デfine DEFAULT唳THREAD_LIMIT 64
ヽoo。ツTHREAD_LIMIT 20000
この2行はThreadsPerChildとThreadLimitの制限数に対応しています。configureの前に64を希望の値に変えたほうがいいです。この二つの値を高すぎて、システムの処理能力を超えないように注意してください。Apacheが起動しないので、システムが不安定になります。
Workカーモードで同時に処理できる要求の総数は、サブプロセス総数によってThreadsPerChild値を乗じて決定され、MaxClientsに等しいはずである。負荷が大きい場合、既存のサブルーチン数が満たされない場合、コントロールプロセスは新しいサブルーチンに派生します。デフォルトの最大のサブルーチンの総数は16で、増大する時も明示的な声明が必要です。ServerLimit(最大値は20000)。この二つの値はソースツリーserver/mpm/worker/worker.cの中の次の2行にあります。
璣デfine DEFAULT唳SERVER_LIMIT 16
ヽoo。ツSERVER_LIMIT 20000
明示的にServerLimitを宣言した場合、ThreadsPerChildを乗じた値はMaxClientsに等しい値を超えなければならず、MaxClientsはThreadsPerChildの整数倍でなければならない。そうでなければ、Apacheは自動的に対応する値に調整される。以下はworkerの配置段です。
StartServers 3
MaxCients 2000
ServerLimit 25
MinSpare Threads 50
MaxSpare Threads 200
ThreadLimit 200
Threads PerChild 100
MaxRequests PerChild 0