Nexus retorna erro 502 (Bad Gateway) ao publicar artefatos

2

Acabei de concluir a instalação do Sonatype Nexus 3.2.1-01 e estou tentando publicar alguns artefatos usando um trabalho do Jenkins e o plugin Nexus Artifact Uploader 2.9.

O upload começa bem:

100 % completed (572 kB / 572 kB).

Mas, em seguida, ele lança o erro:

Return code is: 502, ReasonPhrase:Bad Gateway.

Ambos os servidores Jenkins e Nexus são executados por trás de um proxy reverso que, acredito, é a origem do problema.

O log do Apache parece sugerir que a solicitação não foi respondida pelo Nexus:

[Thu Apr 06 18:50:46.128569 2017] [proxy:error] [pid 10327] (32)Broken pipe: 
[client some_ip:57928] AH01084: pass request body failed to 0.0.0.0:8081 (0.0.0.0)
[Thu Apr 06 18:50:46.128649 2017] [proxy_http:error] [pid 10327] [client some_ip:57928] AH01097: pass request body failed to 0.0.0.0:8081 (0.0.0.0) from some_ip ()

Esta é a minha configuração do VirtualHost no Apache para o servidor do Sonar:

<IfModule mod_ssl.c>
<VirtualHost *:443>
     ServerAdmin [email protected]
     ServerName  some.website.com
     ServerAlias nsome.website.com

     DocumentRoot /srv/www/nexus/public_html/
     ErrorLog /srv/www/nexus/logs/error.log
     CustomLog /srv/www/nexus/logs/access.log combined

     ProxyPreserveHost On
     ProxyPass / http://0.0.0.0:8081/
     ProxyPassReverse / http://0.0.0.0:8081/
     ProxyPassReverse / https://some.website.com/

     SSLCertificateFile /etc/letsencrypt/live/some.website.com/cert.pem
     SSLCertificateKeyFile /etc/letsencrypt/live/some.website.com/privkey.pem
     Include /etc/letsencrypt/options-ssl-apache.conf
     SSLCertificateChainFile /etc/letsencrypt/live/some.website.com/chain.pem
</VirtualHost>
</IfModule>

Eu tentei adicionar o seguinte, conforme explicado em outras respostas, mas não ajudou:

1) Desabilitando a verificação dos certificados SSL (embora sejam válidos):

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

2) Forçando os cabeçalhos das solicitações:

RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"

3) Definindo os tempos limite e opções keepalive na linha ProxyPass:

ProxyPass / http://0.0.0.0:8081/ retry=1 acquire=3000 timeout=600 Keepalive=On
    
por Tedi 06.04.2017 / 19:11

1 resposta

1

No final, o erro 502 (gateway inválido) não teve nada a ver com a causa raiz do problema. A versão listada no artefato a ser publicado para a versão de snapshot não estava em conformidade com a política do Nexus e isso estava provocando o erro.

    
por 10.04.2017 / 12:45