Como configurar o HAProxy para passar URL não codificado para o back-end do Jenkins?

Como configurar o HAProxy para passar URL não codificado para o back-end do Jenkins?

Eu tenho o HAProxy configurado para encerrar conexões SSL para um servidor Jenkins CI, fazendo proxy para o back-end do servidor Jenkins CI por meio de HTTP simples. Posso executar com sucesso [até agora] todas as operações necessárias na interface da web do servidor Jenkins CI, incluindo gerenciar a instância.

No entanto, eu consigoo aviso de "configuração de proxy reverso do Jenkins está quebrada". Isso é causado por uma verificação de configuração de proxy mais rigorosa desde a versão 1.572 do Jenkins, que usa uma URL na forma de:

https://host-name/jenkins/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/testForReverseProxySetup/a%2Fb/

para testar a configuração do proxy reverso. A causa típica para o aviso emitido é a decodificação do %2Fem uma barra pelo proxy reverso, o que causa um 404.

Parece haver soluções de configuração bem documentadas para configurações de proxy reverso Apache e nginx para eliminar esse aviso. O que não consegui encontrar é algo semelhante à opção "AllowEncodedSlashes On" do Apache, ou à configuração "proxy_pass" do nginx, ou mesmo um exemplo de configuração do Jenkins por trás do HAProxy (que estou usando em vez do Apache ou nginx porque já ter HAProxy em vigor para outras aplicações).

  • Sistema operacional: CentOS 6.6
  • Versão HAProxy: 1.5.2-2
  • Versão Jenkins: 1.610

Responder1

Acontece que isso não foi um problema com a codificação/decodificação de URL. Foi simplesmente um erro do operador da minha parte - ao encerrar o SSL em qualquer proxy, vocêdevegarantir que oX-Proxy-Protocabeçalho está definido comohttpspara que todos os URLs gerados pelo Jenkins dessa maneira usem um esquema dehttps. Perdi a linha na documentação da página de solução de problemas. Adição simples:

http-request set-header X-Forwarded-Proto https

Para a definição de backend removeu o aviso.

informação relacionada