내 웹서버에서 무작위 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는 이 웹 서버에 ProxyPass를 사용합니다. 이 웹 서버는 실제 응용 프로그램 서버에 ProxyPass를 사용하는 데 사용됩니다.
웹서버의 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 핸드셰이크가 완료되기 전에 웹 서버와 애플리케이션 서버 사이에 일종의 네트워크 오류가 발생했음을 의미합니다. 네트워크에서 패킷 추적(및 그 이상)을 가져오지 않고 TCP 연결이 실패한 이유를 정확히 알아내는 것은 거의 불가능합니다. 그래도 오류가 발생한 시점에 네트워크 정체나 앱 서버의 부하가 매우 높은지 찾아보겠습니다.
답변2
Hyper-V 통합이 문제였습니다.
프록시 서버에서 Linux 통합 구성 요소를 3.4에서 3.5로 업데이트하면 문제가 해결되었습니다.