Apache gzipでファイルを圧縮して転送する

目次

(確認環境:XAMPP 7.3.6、Apache 2.4.39、Windows 10)

概要

Apacheにファイル圧縮の設定を行い、ファイルがgzipで圧縮されて転送されることを確認します。

index.phpが圧縮する対象のファイルです。中身はテキストのみです。
D:\xampp\htdocs\phptest\index.php

行うこと

1..htaccessファイルを作成しmod_deflateを記述します。

2.httpd.confファイルを修正します。

3.ブラウザのChromeで表示してファイルの転送結果を確認します。

XAMPPの環境です。
XAMPP インストールとHello Worldを表示

 

.htaccessファイルを作成する

.htaccessファイルを新規作成しますが、Windowsのエクスプローラーからだと、先頭がドットで拡張子がないファイルを作成できません。

そのため、一旦ファイルを作成した後、DOSプロンプトでファイル名を変更します。

D:\xampp\htdocs\phptest>ren htaccess .htaccess

renは、ファイル名を変更するコマンドです。

 

作成した.htaccessファイルに以下を追加します。

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html
</IfModule>

deflateは、空気を抜く、しぼませるという意味です。

 

httpd.confファイルを修正する(mod_filter,mod_deflate)

httpd.confのmod_filterとmod_deflateのコメント(#)を外します。

LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so

mod_filter.soのコメントを外していない場合、Apacheのerror.logに以下が出力されます。

[core:alert] [pid 13528:tid 1896] [client ::1:52339] D:/xampp/htdocs/phptest/.htaccess: Invalid command 'AddOutputFilterByType', perhaps misspelled or defined by a module not included in the server configuration

ログの場所

Apacheのerror.logは、apacheフォルダのlogsフォルダ配下にあります。

D:\xampp\apache\logs

 

Chromeでファイルの転送結果を確認する

ブラウザのGoogle Chromeでファイルの転送結果を確認します。
Chromeを立ち上げNetworkタブを開きます。

Networkタブの表示方法は以下を参照願います。
Google Chrome Networkタブの見方(フィルサイズ/表示時間)

設定前

設定前のResponse Headresです。ConnectionとContent-Lengthの間に、Content-Encodingはありません。

設定後

設定後のResponse Headresです。ConnectionとContent-Lengthの間に、Content-Encoding:gzipがあります。gzipが設定されたことを確認できました。

転送容量の確認

Sizeは転送容量です。上段が圧縮後の容量で535Bです。
下段は、圧縮前の容量で10.9KBです。圧縮されていることが確認できました。

設定変更時に必要なこと

ファイルを書き換える設定をした場合は、Apacheを再起動します。

 

関連の記事

Apache logrotateのログローテーションの設定

△上に戻る