ウェブサーバーでランダムな 502 エラーが発生しています。
レート: 0.5%
ログにエラーがあります: SSL ライブラリ エラー: 336151568 エラー:14094410:SSL ルーチン:SSL3_READ_BYTES:sslv3 アラート ハンドシェイク失敗
OpenSSL バージョン: OpenSSL 1.0.0-fips 2010 年 3 月 29 日
通信網 画像を投稿できないので、私のネットワークのスキームへのリンクをここに示します: https://i.stack.imgur.com/oOOnL.jpg 同じ画像を別のホスティング業者で利用した場合:http://s28.postimg.org/q9012t8l7/error502.jpg
詳細:
私はTomcat 7.0.37でJEEアプリケーションをホストしています
誰かがこれらのアプリケーションのいずれかに接続しようとすると、私のルーターの外部 IP に接続します。ルーターは、そのユーザーを私の DMZ にリダイレクトします。
DMZ 上の Apache 構成
<VirtualHost *:443>
ServerName www.myapp.fr
ServerAlias myapp.fr
RedirectMatch ^/$ /CRA
ProxyRequests Off
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/ssl/certs/www.myapp.fr.pem
ProxyPass / https://myapp.fr/
ProxyPassReverse / https://myapp.fr/
LogLevel info
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/myapp.fr/SSL.myapp.fr_access.%Y-%m-%d.log 5M" combined
ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/myapp.fr/SSL.myapp.fr_error.%Y-%m-%d.log 5M"
</VirtualHost>
Myapp.frは/etc/hostsでウェブサーバーのIPアドレス192.168.1.51として定義されています。
DMZ はこの Web サーバーへの ProxyPass を使用します。この Web サーバーは、実際のアプリケーション サーバーへの ProxyPass に使用されます。
Webサーバー上のApache設定
<VirtualHost *:443>
ServerName myapp.fr
RedirectMatch ^/$ https://myapp.fr/Collaborateurs/
ProxyRequests Off
SSLCertificateFile /etc/ssl/certs/www.myapp.fr.pem
SSLProxyEngine On
SSLEngine on
ProxyPass /Collaborateurs/ https://ApplicationServer:8443/Collaborateurs/
ProxyPassReverse /Collaborateurs/ https://ApplicationServer:8443/Collaborateurs/
LogLevel info
CustomLog "|/usr/sbin/rotatelogs ${APACHE_LOG_DIR}/myapp/SSL.myapp.fr_access.%Y-%m-%d.log 5M" combined
ErrorLog "|/usr/sbin/rotatelogs ${APACHE_LOG_DIR}/myapp/SSL.myapp.fr_error.%Y-%m-%d.log 5M"
</VirtualHost>
問題はここにあります。ユーザーの不正なゲートウェイ エラー (502) に対応するランダムなエラーがログに表示されることがあります。
/var/log/httpd/myapp.fr/SSL.myapp.fr_error.%Y-%m-%d.log からのログ:
[Mon Dec 23 08:58:31 2013] [info] Seeding PRNG with 136 bytes of entropy
[Mon Dec 23 08:58:31 2013] [info] Initial (No.1) HTTPS request received for child 11 (server myapp.fr:443)
[Mon Dec 23 08:58:31 2013] [info] [client 192.168.1.52] Connection to child 0 established (server myapp.fr:443)
[Mon Dec 23 08:58:31 2013] [info] Seeding PRNG with 136 bytes of entropy
[Mon Dec 23 08:58:31 2013] [info] [client 192.168.1.52] SSL Proxy connect failed
[Mon Dec 23 08:58:31 2013] [info] SSL Library Error: 336151568 error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
[Mon Dec 23 08:58:31 2013] [info] [client 192.168.1.52] Connection closed to child 0 with abortive shutdown (server myapp.fr:443)
[Mon Dec 23 08:58:31 2013] [error] (502)Unknown error 502: proxy: pass request body failed to 192.168.1.52:8443 (ApplicationServer.domain.lan)
[Mon Dec 23 08:58:31 2013] [error] proxy: pass request body failed to 192.168.1.52:8443 (ApplicationServer.red.lan) from 10.0.0.2 ()
エラーが発生していない場合の同じログは次のとおりです。
[Mon Dec 23 09:08:30 2013] [info] Initial (No.1) HTTPS request received for child 8 (server myapp.fr:443)
[Mon Dec 23 09:08:30 2013] [info] Initial (No.1) HTTPS request received for child 0 (server myapp.fr:443)
[Mon Dec 23 09:08:30 2013] [info] [client 192.168.1.52] Connection to child 0 established (server myapp.fr:443)
[Mon Dec 23 09:08:30 2013] [info] Seeding PRNG with 136 bytes of entropy
[Mon Dec 23 09:08:31 2013] [info] Initial (No.1) HTTPS request received for child 3 (server myapp.fr:443)
[Mon Dec 23 09:08:31 2013] [info] [client 192.168.1.52] Connection to child 0 established (server myapp.fr:443)
[Mon Dec 23 09:08:31 2013] [info] Seeding PRNG with 136 bytes of entropy
なぜこのエラーが発生するのか理解できません。誰か考えはありますか? 最終的なヒントをありがとうございます。英語が下手で申し訳ありません :D
答え1
SSL プロキシ接続が失敗するということは、SSL ハンドシェイクが完了する前に、Web サーバーとアプリケーション サーバーの間で何らかのネットワーク エラーが発生したことを意味します。ネットワークからパケット トレース (およびその他多数) を取得しないと、TCP 接続が失敗した正確な理由を把握することはほぼ不可能です。ただし、エラーが発生した時間帯にネットワークの輻輳やアプリケーション サーバーの非常に高い負荷が発生していないか確認することをお勧めします。
答え2
Hyper-V の統合が問題でした:
プロキシ サーバー上の Linux 統合コンポーネントを 3.4 から 3.5 に更新すると、問題は解決しました。