Jenkins 를 웹 서버와 Reverse proxy 로 연결해서 사용할 경우 관리자 메뉴에 들어가면 다음과 같은 에러 메시지가 발생한다.
Jenkins 1.552 부터 발생하며 해결 방법은 다음과 같이 웹서버를 설정해 주면 된다.
apache httpd 설정
설정에 AllowEncodedSlashes NoDecode 을 추가하라는데 NoDecode 옵션은 아파치 2.2.22 이상부터 가능하나 CentOS 6 의 아파치는 2.2.15 이므로 사용할 수 없다.
대신 아래처럼 AllowEncodedSlashes on 으로 설정해도 에러가 사라진다. ProxyPass 뒤에 nocanon 옵션을 붙여줘야 정상 동작한다.
<VirtualHost *:80>
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
AllowEncodedSlashes on
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
CODE
Ref