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