web-dev-qa-db-ja.com

ApacheはHTTPSの提供をランダムに停止しますが、HTTPは問題なく機能します

Windows Server 2012にこのApacheがあります。

Server version: Apache/2.4.9 (Win32) Apache Lounge VC10 Server built: Mar 17 2014 10:48:43

ほとんどの場合、それは完全に機能しますが、時々(ランダムに、週に3〜4回cca)、ポート443でのHTTPSの提供を停止しますが、ポート80でのHTTPの提供を継続します。HTTPSの提供を停止すると、この問題を解決する唯一の方法は、Apacheを再起動することです。

これは、ここと非常に同じ問題のようです: Apacheがhttp要求に応答を停止します-httpsは引き続き機能します ただし、この場合、HTTPSが機能を停止し、HTTPがすべて機能します時間。

Trace6レベルの冗長性を有効にして、何が起こっているかについての適切な情報を取得しました。ただし、ログは空です。

...
[Sat Mar 21 07:51:50.577373 2015] [ssl:debug] [pid 3356:tid 2540] ssl_engine_io.c(999): [client ...:16529] AH02001: Connection closed to child 137 with standard shutdown (server ...:443)
[Sat Mar 21 07:54:21.936742 2015] [ssl:info] [pid 4760:tid 432] AH01914: Configuring server ...:443 for SSL protocol
...

このログでは、07:51:50に正常に処理された最後のリクエストの最後の行を確認できますが、何もありません(内部監視システムは毎分接続を試行するため、07:52:50のレコードがあるはずです) 、しかしそれはありません)。 07:54:21の次の行は、内部監視システムがタイムアウトしてApacheサービスを再起動した後です。

私たちの内部監視はC#で行われ、その出力は次のとおりです。

System.Net.WebException: The operation has timed out
at System.Net.HttpWebRequest.GetResponse()
at ExecuteServicePageCheck(Object stateInfo)

Httpd-ssl.confは次のようになります。

  <VirtualHost _default_:443>
        ServerName ...:443
        ServerAlias www.....com
        DocumentRoot ${US_ROOTF_WWW}/.../www/www
        SSLEngine On
        SSLProtocol All -SSLv2 -SSLv3
        SSLHonorCipherOrder on
        # Prefer PFS, allow TLS, avoid SSL, for IE8 on XP still allow 3DES
        SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+AESGCM EECDH EDH+AESGCM EDH+aRSA HIGH !MEDIUM !LOW !aNULL !eNULL !LOW !RC4 !MD5 !EXP !PSK !SRP !DSS"
        # Prevent CRIME/BREACH compression attacks
        SSLCompression Off
        # Commit to HTTPS only traffic for at least 180 days
        Header add Strict-Transport-Security "max-age=15552000"
        SSLCertificateFile ${US_ROOTF}/core/Apache2/server_certs/....crt
        SSLCertificateKeyFile ${US_ROOTF}/core/Apache2/server_certs/....key
        SSLCertificateChainFile ${US_ROOTF}/core/Apache2/server_certs/....ca-bundle
        CustomLog "logs/.../www/access.ssl.%Y.%m.%d.log" combined
        ErrorLog "logs/.../www/error.ssl.log"
        LogLevel trace6
    </VirtualHost>

何が起こっているのかについての情報を得るために私たちができることは他にありますか?このtrace6レベルでも、Apacheからのエラーメッセージはどこにもありません。

HTTPとHTTPSの両方でより多くのドメインが提供されており、HTTPSのすべてのドメインで問題が発生することに注意してください。それは、Apacheが黙ってそのポートを閉じたようなものです。

6
Wapac

さまざまな構成をテストした結果、問題が見つかり、サーバーは7日間安定して問題なく動作しました。

Httpd.confファイルのこの設定は問題を修正しました:

AcceptFilter http none
AcceptFilter https none

以前は、httpのAcceptFilterしかなく、2行目がありませんでした。

Apacheドキュメント によると、Windowsのデフォルト値は次のとおりです。

AcceptFilter http data
AcceptFilter https data

none値を使用すると、AcceptEx()ではなくaccept()が使用され、接続間でソケットがリサイクルされません。

8
Wapac