Estou enfrentando um erro 502 aleatório em meus servidores da web.
Avaliar: 0,5%
Erro nos meus registros: Erro da biblioteca SSL: erro 336151568:14094410:Rotinas SSL:SSL3_READ_BYTES:falha de handshake de alerta sslv3
Versão OpenSSL: OpenSSL 1.0.0-fips 29 de março de 2010
Rede Não consigo postar imagens, então aqui está um link para o esquema da minha rede: https://i.stack.imgur.com/oOOnL.jpg e a mesma imagem com outro hoster:http://s28.postimg.org/q9012t8l7/error502.jpg
Alguns detalhes:
Eu hospedo aplicativos JEE em um Tomcat 7.0.37
Quando alguém tenta se conectar a um desses aplicativos, ele se conecta ao IP externo do meu roteador. O roteador o redireciona para minha DMZ.
Configuração do Apache na DMZ
<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 é definido em /etc/hosts como 192.168.1.51, um IP de servidor web
A DMZ usa ProxyPass para este servidor Web. Este servidor Web é usado para ProxyPass para o servidor de aplicativos real.
Configuração do Apache no servidor Web
<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>
Aqui está o problema. Às vezes, um erro aleatório aparece em meus logs, correspondendo a um erro de gateway inválido (502) para o usuário.
registros de /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 ()
Aqui estão os mesmos logs, quando não ocorre nenhum erro:
[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
Não consigo entender por que esse erro acontece. Alguém tem uma ideia? Obrigado pela sua eventual pista - e desculpe pelo meu mau inglês: D
Responder1
Falha na conexão do proxy SSL significa que houve algum tipo de erro de rede entre seu servidor da web e seu servidor de aplicativos antes da conclusão do handshake SSL. Sem obter rastreamentos de pacotes (e muito mais) da sua rede, é praticamente impossível descobrir exatamente por que a conexão TCP falhou. Eu procuraria por congestionamento de rede ou cargas muito altas no servidor de aplicativos na época dos erros.
Responder2
A integração do Hyper-V foi o problema:
A atualização dos componentes de integração do Linux de 3.4 para 3.5 no servidor proxy resolveu o problema.