平成30/ 2018-10-23 21:58
Apache/SetEnvIf

以下の設定は、IEのバグの回避の為とのこと。有効にさせときましょう。

SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0



___ Thanks.
Apache + mod_sslとIEの関係
http://kazu-360.cocolog-nifty.com/blog/2007/08/apache_mod_ssli_7c51.html
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を触る機会がなったために、こんな罠があるとは思いもしませんでした。
ところで、ググってみても現実解な設定が見当たらなかったりして、鯖屋のみなさんは実際のところどーしているのか、ちょっと気になります。