37391
**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ファイルの数だけ容量が増える？  
・ファイル数が増加するので、見た目が煩雑になる？
CC BY-SA 3.0
2017-08-21T13:43:35.187
37381
2017-08-22T02:40:07.720
7886
question
apache deflate gzip 圧縮
Apache「mod_deflate」の設定方法の違いについて
こういうのは一般論は無く、運用や状況によって異なるものです。

まず  
\- httpd.conf は apache httpd の起動時に１回処理されるだけ  
\- .htaccess はリクエストがあるたびに読まれなおす  
ということです。 <https://httpd.apache.org/docs/2.2/ja/howto/htaccess.html> には

> .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. は選択肢にない、ってことでよいと思います。
CC BY-SA 3.0
2017-08-22T02:40:07.720
37391
2017-08-22T02:40:07.720
8589
37381
answer