« Googleマップを簡単貼り付け | トップページ | JMeterでSSLしたけど »

2007年8月24日 (金)

Apache + mod_sslとIEの関係

Apache + mod_sslでSSLを有効にしてIEでアクセスするとやたらと遅い。
具体的にはページ内で使われている画像やスタイルシートのダウンロードにやたらと時間がかかってる。
ちなみに通常のHTTP接続だと全然大丈夫だったりする。

SSLのせーでCPUやメモリが食われているのかな?
と思い、チェックしてみたけど余裕はあるっぽい。

うーんと悩んでて試しにFirefoxやOperaでアクセスすると・・・あれっ大丈夫じゃん。(^^;A

何でだろ?とググりまくってたらhttpd-ssl.confにデフォルトで組み込まれている↓以下の設定が原因っぽい。

BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

どーやら、IEのSSL3.0とKeep-Aliveの実装に問題があり(参考資料)、それを回避するためにブラウザのUser-Agentをチェックし、IEだった場合に

  • "nokeepalive"でKeep-Aliveを切り
  • "ssl-unclean-shutdown"でSSL3.0のclosure alertを無効にし
  • "downgrade-1.0"と"force-response-1.0"でHTTP/1.0の使用を強制する

よーです。
その結果、ページに含まれる画像などの読込に対してKeep-Aliveが利用されず、毎回SSLの接続が行われてパフォーマンスがガタ落ちになるよーです。

流石にKeep-Aliveまで切られるっては非現実的なので、ググってみた結果を参考に↓以下のよーに修正してみました。

BrowserMatch "MSIE [1-4]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

BrowserMatch "MSIE [5-9]" \
         ssl-unclean-shutdown

IE6.0では上記現象の軽減を目的としてIE(正確にはWininet.dll)が暫定的に変更されているよーなので、Keep-AliveとHTTP/1.1は使用するよーにしました。
IE7に関しては、どーして良いのか情報不足で分からないのですが、とりあえずIE6と同じ扱いとしました。

今まで、IISやSSLアクセラレータを使ってたり、画像が殆どないシステムとかばかりで、自分でApache + mod_sslを触る機会がなったために、こんな罠があるとは思いもしませんでした。
ところで、ググってみても現実解な設定が見当たらなかったりして、鯖屋のみなさんは実際のところどーしているのか、ちょっと気になります。

|

« Googleマップを簡単貼り付け | トップページ | JMeterでSSLしたけど »

技術情報もしくは仕事ネタ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/26493/7659037

この記事へのトラックバック一覧です: Apache + mod_sslとIEの関係:

« Googleマップを簡単貼り付け | トップページ | JMeterでSSLしたけど »