저는 Jenkins CI 서버에 대한 SSL 연결을 종료하고 일반 HTTP를 통해 Jenkins CI 서버 백엔드로 프록싱하도록 HAProxy를 구성했습니다. [지금까지] 인스턴스 관리를 포함하여 Jenkins CI 서버 웹 인터페이스에서 필요한 모든 작업을 성공적으로 수행할 수 있습니다.
그러나 나는 얻는다Jenkins "역방향 프록시 설정이 손상되었습니다" 경고. 이는 다음 형식의 URL을 사용하는 Jenkins 버전 1.572 이후 더욱 엄격한 프록시 구성 검사로 인해 발생합니다.
https://host-name/jenkins/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/testForReverseProxySetup/a%2Fb/
역방향 프록시 구성을 테스트합니다. 호출된 경고의 일반적인 원인은 %2F
역방향 프록시에 의해 슬래시로 디코딩되어 404가 발생하기 때문입니다.
이 경고를 제거하기 위해 Apache 및 nginx 역방향 프록시 구성에 대한 잘 문서화된 구성 솔루션이 있는 것 같습니다. 내가 찾지 못한 것은 Apache의 "AllowEncodedSlashes On" 옵션이나 nginx의 "proxy_pass" 구성 또는 심지어 HAProxy 뒤에 Jenkins를 설정하는 예(이미 Apache나 nginx 대신 사용하고 있기 때문에)와 유사한 것입니다. 다른 애플리케이션에는 HAProxy가 있어야 합니다.
- 운영 체제: CentOS 6.6
- HAProxy 버전: 1.5.2-2
- 젠킨스 버전: 1.610
답변1
이는 URL 인코딩/디코딩 문제가 아닌 것으로 밝혀졌습니다. 그것은 단순히 내 측의 운영자 오류였습니다. 프록시에서 SSL을 종료할 때~ 해야 하다보장X-프록시-프로토헤더가 다음으로 설정되었습니다.https이런 방식으로 Jenkins가 생성한 모든 URL은 다음 구성표를 사용하게 됩니다.https. 문제 해결 페이지의 설명서에서 해당 줄을 놓쳤습니다. 간단한 추가:
http-request set-header X-Forwarded-Proto https
백엔드 정의에 대한 경고가 제거되었습니다.