FlexやFlash(ActionScript⇔ColdFusion)などでデータのやり取りをする際に利用するのがAMF通信(application/x-amf)ですが。このAMF通信をApacheのmod_deflateモジュールを利用して通信圧縮する方法を試したのでその手順をメモとして残しておきたいと思います。
mod_deflateでの通信圧縮はJSONでの応答などPOSTでのサーバからの応答も圧縮してくれるのでチューニングに非常に便利です。
尚、今回の記事はバージョンアップによって一部記載方法が異なるのでApache 2.2、2.3向けとなってます。
httpd.conf への記載
圧縮設定を利用するには httpd.conf での設定が必要ですが、mime.type の指定は mod_filter を利用する必要がありますのでここが要注意かと。
従来の AddOutputFilterByType での指定では正常に「application/x-amf」を認識してくれず圧縮されませんでした。
下記のように圧縮する「Content-Type」として「application/x-amf」を指定すればOKです。
また合わせてログフォーマットの記法を修正して、圧縮状況をログに出力するようにもしておきます。
以上で完了です。
Apacheを再起動すれば反映されるはず。。。
おまけ:Apache 2.4の場合
尚、Apache 2.4以降からは mod_filter の記述方法が微妙に変わったようなので上記での記載では有効になりません。下記のように記述する必要があります。