【CentOS8/PHP】サイトコンテンツをgzipしてみる。

プログラミング PHP

【CentOS8/PHP】サイトコンテンツをgzipしてみる。

なんだか急に暖かくなってきた、非常にザンネン。
気温が上がると、どこ行っても混むんだよなぁ。
…新型コロナの影響でキャンプ場が混み合っているらしいです。
うるさいキャンプは、やりたくないもんなぁ。
新型コロナの影響もあり、今年はソロキャンが増えそうだ。

さて、今回は
せっかく作ったWebサーバなので、いろいろと試しちゃう。
モノは試しですよ。
ワタクシのポリシー。知っているだけではなく経験してナンボ。
経験するためには時間も要するが、自己投資だと思えば時間なんて気になりませんよ。
自己投資に時間と金をかけられない人、意外と多いですよ。

サクッと行ってみようかねぇ。


設定変更

php.ini変更する場合。

php.ini変更。

[root@localhost ~]# vi /etc/php.ini

設定の有効化。

zlib.output_compression = Off

zlib.output_compression にOn!

mod_deflateを使用する場合

CentOSの場合は最初からインストールされていると思うが、無い場合はmod_deflateのインストールが必要。
deflate.conf作成。

[root@localhost conf.d]# vi deflate.conf

内容を以下のように設定

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
DeflateCompressionLevel 1

# 画像ファイル、zipファイルを除外
SetEnvIfNoCase Request_URI\.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI _\.utxt$ no-gzip
</IfModule>
apache再起動。
[root@localhost ~]# systemctl restart httpd

お、mod_deflateの設定があると、php.iniのzlib.output_compressionの設定は無視される模様。
php.iniの設定では、不随するcssやjsは圧縮されないようだ。


結果を比較してみる

ん、今回は非SSLの環境で実施。
mod_deflateを使用した結果。
非圧縮

GETのみ。

557.35KB。

POSTあり。
99.15KB。

これを基準にして考えよう。

圧縮レベル1 GETのみ。

非圧縮557.35KB→18.66KB。

POSTあり。

非圧縮99.15KB→13.28KB。

圧縮レベル5 GETのみ。

非圧縮557.35KB→19.67KB。
なぜ増える…。

POSTあり。

非圧縮99.15KB→12.14KB。

圧縮レベルの最大も試そうと思ったが、レベル5の段階でレスポンスに影響が出ていたので、不要と判断。


環境にあった設定をする必要あり

非圧縮だと当然サーバ機のスペックは必要ないが、データ転送量が増える。圧縮率を上げるほど圧縮自体の処理が必要となるためスペックが必要になるが転送量が減る。
貧弱なサーバ機だと、サーバ処理自体に時間がかかるようになるため、逆にレスポンスが遅くなる場合もあるだろう。
んむぅ…難しいトレードオフな感じ。
サーバのスペックとも要相談。

ローカルネットワークなシステムであれば、非圧縮で問題ないだろう。ま、ローカルとは言えVPNなんかでは考慮が必要。
ワールドワイドなシステムであれば、ネットワークトラフィックも考慮し、圧縮が必要かも。
レンサバで何かをやるなら転送量もあることだし、必須かな。

前の記事 次の記事