この記事では、mod_deflateを使用してApacheのGZIP圧縮の構成を詳しく説明します。モジュールの有効化、圧縮レベルの設定、特定のファイルタイプに圧縮を選択的に適用し、潜在的な問題のトラブルシューティングを説明しています。メインフォーカス
GZIP圧縮の構成(このためのApacheのモジュールであるmod_deflate
を使用)には、通常、操作システムとApacheのインストールに依存して/etc/apache2/apache2.conf
または/etc/httpd/conf/httpd.conf
にあるApache構成ファイルの変更が含まれます。正確な場所は異なる場合があるため、不確かな場合はApacheドキュメントを参照してください。これらの変更を行うには、ルートまたは管理特権が必要です。
まず、 mod_deflate
が有効になっていることを確認してください。まだロードされていない場合は、有効にする必要があります。これには、通常、行の除去またはApache構成ファイルに行を追加することが含まれます。
<code class="apache">LoadModule deflate_module modules/mod_deflate.so</code>
mod_deflate.so
へのパスは、Apacheのインストールに基づいてわずかに異なる場合があります。モジュールを有効にした後、 <directory></directory>
または<virtualhost></virtualhost>
ブロック内でそのパラメーターを構成する必要があります。これが構成の例です。
<code class="apache"><ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript application/javascript application/json DeflateCompressionLevel 6 # Optional: Exclude specific file types # AddOutputFilterByType NO_DEFLATE image/jpeg image/png image/gif </ifmodule></code>
この構成は次のとおりです。
<ifmodule mod_deflate.c></ifmodule>
:これにより、 mod_deflate
がロードされている場合にのみ構成が適用されるようにします。AddOutputFilterByType DEFLATE ...
:この行は、圧縮されるMIMEタイプを指定します。この例には、一般的なテキストベースのコンテンツタイプが含まれています。ここでMIMEタイプを追加または削除するか、どのファイルが圧縮されるかを制御します。DeflateCompressionLevel 6
:これにより、圧縮レベルが設定されます。より高い数(1-9)は、圧縮が高いことを意味しますが、CPUの使用量が大きくなります。 6は、圧縮とパフォーマンスのバランスが良いです。サーバーに最適なレベルを見つけるために実験します。AddOutputFilterByType NO_DEFLATE ...
:これは、既に圧縮されている画像(JPEG、PNG、GIF)などの圧縮から特定のファイルタイプを除外するオプションの行です。これらを除くと、ダウンロード時間に大きな影響を与えることなく、CPUリソースを節約できます。これらの変更を行った後、Apacheサーバーを再起動して変更が有効になります。 Apacheを再起動するコマンドは、オペレーティングシステムによって異なります(たとえば、debian/ubuntuでsudo systemctl restart apache2
、 sudo apachectl restart
)。
mod_deflate
でGZIP圧縮を有効にすると、主にWebサーバーとクライアントのブラウザ間で転送されるファイルのサイズを縮小することにより、大きなパフォーマンスの利点が提供されます。小さいファイルサイズは次のとおりです。
実際のパフォーマンスの向上は、提供されるコンテンツの種類、ファイルのサイズ、サーバーのハードウェアリソースなどの要因に依存します。ただし、通常、GZIP圧縮により転送時間と帯域幅の使用が大幅に短縮されることが予想されます。
Apacheサーバーが予想通りにファイルを圧縮していない場合、 mod_deflate
を構成しているにもかかわらず、いくつかのトラブルシューティング手順が問題を特定するのに役立ちます。
mod_deflate
が有効になっていることを確認し、正しく構成します。Apache設定ファイルを確認して、 mod_deflate
がロードされていることを確認し、 AddOutputFilterByType
ディレクティブに正しいMIMEタイプが含まれていることを確認します。構成の構文エラーを探してください。mod_deflate
に関連するエラーについてApacheエラーログを調べます。これらのログは、多くの場合、圧縮が機能していない理由についての貴重な手がかりを提供します。エラーログの位置はシステムによって異なりますが、一般的な場所には/var/log/apache2/error.log
または/var/log/httpd/error_log
が含まれます。Content-Encoding
ヘッダーを探します。 GZIPがない場合、またはgzip
が表示されない場合、圧縮は機能しません。mod_deflate
を妨害する可能性があります。他のモジュールを一時的に無効にして、競合を引き起こしているかどうかを確認します。これらすべてのポイントをチェックしても問題を解決できない場合は、Apacheバージョン、オペレーティングシステム、およびよりターゲットを絞った支援のために表示される特定のエラーメッセージの詳細を提供してください。
はい、 mod_deflate
を使用して、特定のファイルタイプまたはディレクトリにGZIP圧縮を選択的に適用できます。これを達成し、 <filesmatch></filesmatch>
、 <directory></directory>
、または<location></location>
apache構成ファイルにAddOutputFilterByType
ディレクティブと組み合わせて実現します。
例1:ディレクトリ内の特定のファイルタイプのみを圧縮する:
<code class="apache"><directory> AddOutputFilterByType NO_DEFLATE image/* </directory></code>
この例では/var/www/html/images
ディレクトリ内の画像の圧縮を防ぎます。
例2:仮想ホスト内の特定のファイルタイプを圧縮する:
<code class="apache"><virtualhost> ServerName example.com DocumentRoot /var/www/example.com <filesmatch> AddOutputFilterByType DEFLATE text/html text/plain text/css application/x-javascript application/javascript </filesmatch> <filesmatch> AddOutputFilterByType NO_DEFLATE image/* </filesmatch> </virtualhost></code>
この例では、 example.com
Virtual Host内のHTML、TXT、CSS、およびJSファイルのみを圧縮し、画像ファイルを明示的に除外します。 /var/www/example.com
実際のドキュメントルートに置き換えることを忘れないでください。
例3:特定のディレクトリ内のファイルを圧縮する:
<code class="apache"><directory> AddOutputFilterByType DEFLATE text/html text/plain text/xml </directory></code>
構成ファイルを変更した後、Apacheを再起動することを忘れないでください。パフォーマンスを最適化し、意図しない結果を回避するために、選択的な圧縮戦略を慎重に計画します。 CPUのオーバーヘッドが帯域幅の節約を超えると、過度に積極的な圧縮がパフォーマンスの劣化につながることがあります。
以上がmod_deflateを使用してApacheでGZIP圧縮を構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。