質問: **HTTP圧縮目的でApache「mod_deflate」を使用したいのですが、設定方法は全部で4種類ですか?** ・それぞれ「メリット」「デメリット」を知りたいです --- **A.圧縮と解凍はその都度自動対応** ・1.「.htaccess」で設定 ・2.「http.conf」で設定 **B.gzipファイルを事前に用意** ・3.「.htaccess」で設定 ・4.「http.conf」で設定 --- **自分で調べた限りではB4が一番良いように思うのですが...** ・「http.conf」で設定することで、ドキュメントルート以下をまとめて指定可能 ・「http.conf」で設定することで、圧縮率を指定可能(多分指定しないと思いますが...) ・gzipファイルを事前に用意することで、その都度対応しなくて済むため、サーバの負担が軽くなる? 余程アクセスがない限りは気にする必要はない? ・gzipファイルを事前に用意する手間については、CRON使用すれば、問題ないような気もするのですが... ・デメリットとしては、事前作成するgzファイルの数だけ容量が増える? ・ファイル数が増加するので、見た目が煩雑になる?
回答: こういうのは一般論は無く、運用や状況によって異なるものです。 まず - httpd.conf は apache httpd の起動時に1回処理されるだけ - .htaccess はリクエストがあるたびに読まれなおす ということです。 には > > .htaccess ファイルの使用は極力避けてください。 > > > とあるくらいです。 - httpd.conf の設定で事足りるのであれば .htaccess を書くのは効率面では無駄、 - 各ディレクトリごとに動作を変えたいなら .htaccess を使うしかない ということになります。 コンテンツの圧縮転送を行うということは、サーバ資源 (特に CPU 能力) を犠牲にしてネットワーク消費量を減らすということですから - 現在ネットワーク転送量や帯域幅がネックになっていて - web サーバの CPU 使用率がネックになっていない 場合に限り、転送能力が上がるということです。そうでない場合には mod_deflate を使わないほうが良いということになります。 また - mod_deflate による圧縮は HTML や CSS に対しては有効ですが、既に圧縮されている JPEG や MP4 などには無意味(圧縮しようと試みるだけ CPU 資源の浪費)であること - Web コンテンツのほとんどが動的コンテンツ (掲示板であるとか wiki であるとかユーザカスタマイズした広告を打ちたいとか) である場合には事前の gzip 圧縮はできない わけで、運営している web page の内容にもよります。 * 静的コンテンツが多いなら 4. が最適 3. が次点。 HTML や CSS などには圧縮を適用し JPEG や MP4 などには圧縮除外する設定が良いです。 httpd.conf で事足らない場合に限り .htaccess を使う、のは同じ。 * 動的コンテンツが多いなら 2. が最適 1. が次点。 いまどき静的コンテンツだけからなる web page ってのはレアだと思います。普通に静的・動的コンテンツが混じるような一般的な web page の運用上は、まず 2. を考え、それで運用できない場合 1. も選択に入る。管理の手間を省きたいので静的コンテンツの圧縮も web サーバにお任せにして 3. 4. は選択肢にない、ってことでよいと思います。