Home > サーバ > mod_proxyとmod_ext_filterで画像圧縮プロキシを作る試み

mod_proxyとmod_ext_filterで画像圧縮プロキシを作る試み

  • 投稿: 2012年05月12日 15:55
  • 更新: 2012年05月12日 15:55
  • サーバ

ということで,apacheのmod_proxyを使ったフォワードプロキシを構成しているんですが,ただ単にプロキシとして使っても面白くないので,貧弱回線用に通信負荷を減らす圧縮プロキシにしちゃいました.要件は以下の通り.

  1. mod_deflateによるgzip圧縮転送
  2. mod_ext_filterを駆使した画像圧縮

ということで,mod_proxyを以下のように設定しました.動いているのであっていると思います.ただ,書き方が良いかどうかは微妙すぎるので,よりよい書き方がありましたら,ご指摘下さい.

<IfModule mod_deflate.c>
  DeflateCompressionLevel 9
  DeflateFilterNote Ratio ratio
  LogFormat "%h %l %u %t \"%r\" %>s %b (%{ratio}n%%)" common_deflate
</IfModule>

<IfModule mod_proxy.c>
  Listen xxxxx
  <VirtualHost _default_:xxxxx>
    CustomLog /var/log/apache2/proxy.log common_deflate
    ErrorLog /var/log/apache2/proxy_error.log

    ProxyRequests On
    ProxyVia Block

    <Proxy *>
      Order deny,allow
      Deny from all
      AuthType Digest
      AuthName "ProxyAuth"
      AuthUserFile /etc/apache2/.prxpswd
      Require valid-user
      Satisfy any

      AddDefaultCharset Off
      SetOutputFilter DEFLATE
    </Proxy>

    <IfModule mod_ext_filter.c>
      ExtFilterDefine jpeg-filter mode=output cmd="/usr/bin/convert -quality 15 jpeg:- jpeg:-"
      ExtFilterDefine png-filter mode=output cmd="/usr/bin/convert -colors 16 -colorspace Transparent -quality 90? +dither +profile \"*\" png:- png:-"
      <ProxyMatch \.(jpe?g|JPE?G)$>
        SetOutputFilter jpeg-filter
      </ProxyMatch>
      <ProxyMatch \.(png|PNG)$>
        SetOutputFilter png-filter
      </ProxyMatch>
    </IfModule>
  </VirtualHost>
</IfModule>

参考

Home > サーバ > mod_proxyとmod_ext_filterで画像圧縮プロキシを作る試み

Return to page top