이 문서는 Jira Software 제품의 HTTP 및 HTTPS 프록시 구성 가이드를 공유하기 위해 작성되었다.
목차
목적
Jira 어플리케이션이 아웃바운드 프록시를 통해 외부적으로 통신할 수 있도록 구성하는 방법을 정의한다.
설정
지라 시작 시 특정 시스템 속성을 Java Virtual Machine(JVM)에 전달하여 프록시 지원을 구성한다. 이러한 속성들은 Oracle에 정의된 규칙을 따른다.
http.proxyHost
http.proxyPort
(default: 80)http.nonProxyHosts
(default: <none>)https.proxyHost
https.proxyPort
HTTP 프록시를 구성하려면 http.proxyHost 속성을, HTTPS 프록시는 https.proxyHost 속성을 정의해야 한다.
시스템 속성 설정에 대해서 자세한 내용은 Setting properties and options on startup 문서를 참조하면 된다.
http.proxyHost 및 http.proxyPort 속성은 각각 HTTP 프로토콜이 사용할 프록시 서버와 포트를 나타낸다. 예:
-Dhttp.proxyHost=proxy.example.org -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example.org -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts=localhost
위에 코드 내용에서 http.nonProxyHosts는 프록시 서버를 통하지 않고 직접 연결해야 하는 호스트를 나타낸다.
http.nonProxyHosts의 값은 각각 ( | )로 호스트 목록을 구분할수 있으며 와일드카드 문자( * )로 패턴 일치하는 주소를 설정할 수 있다. 사용 예: foo.com으로 끝나는 모든 도메인 주소, localhost, confluence, crowd 직접 엑세스
-Dhttp.nonProxyHosts=*.foo.com|localhost|confluence|crowd
http.nonProxyHosts 속성이 구성되지 않은 경우 모든 웹 요청은 프록시를 통해 라우팅되기에 어떤 부분은 프록시를 통하지 않고 연결하는 것이 좋다.. 예를 들어, 컨플런스와 지라를 같이 어플리케이션 링크를 할 경우 추천하는 방법은 프록시를 우회하고 내부 네트워크에서 해당 속성으로 통신하는 것이 좋다. 이러한 링크에서 IP 유효성 검사를 고려할 때 프록시를 통한 라우팅은 속도에 영향을 미칠 수 있다. 즉, 트래픽이 라우팅되는 방식에 따라 서버의 소스 IP가 다를 수 있다.
최소한 http.nonProxyHosts를 통하여 localhost와 JIRA baseurl은 직접 엑세스하게 제외해야 한다. 그렇지 않으면 특정 기능이 제대로 작동하지 않을 수 있다(JIRA는 그 자신에게 연결을 시도하고 HTTP 요청은 시간 초과되거나 프록시에 의해 차단될 수 있다).
사용 예: jira.atlassian.com도메인과 localhost의 모든 호스트에 직접 엑세스
-Dhttp.nonProxyHosts=localhost|jira.atlassian.com
어플리케이션 링크
Jira를 다른 아틀라시안 제품과 어플리케이션 링크 할 경우 어플리케이션 URL을 nonProxyHosts에 추가해야한다. 그렇지 않으면 Jira가 다른 아틀라시안 제품과 통신하려할때 HTTP 요청 시간이 초과되거나 해결되지 않을 수 있다. 어플리케이션 링크를 방해할 수 있다.
아래 예는 Jira를 Confluence(다른 아틀라시안 제품)에 어플리케이션 링크 설정하는 예시이다.
-Dhttp.nonProxyHosts=localhost|*.atlassian.com
인증 설정방법
프록시 인증은 아래와 같은 속성들을 자바로 전달하여 구성되어 진다.
http.proxyUser
– usernamehttp.proxyPassword
– secrethttps.proxyUser
https.proxyPassword
예를 들면,
-Dhttp.proxyUser=atlaspirate -Dhttp.proxyPassword=yarrrrr -Dhttps.proxyUser=atlaspirate -Dhttps.proxyPassword=yarrrrr
Microsoft ISA NTLM 인증
JIRA is Unable to Use NTLM Authentication 문서에 따르면 Jira는 현재 NTLM 인증을 지원하지 않지만 다음과 같은 속성을 사용하여 JVM에서 이 기능을 구성할 수 있다.
-Dhttp.auth.ntlm.domain=DOMAIN
인증 순서 구성
기본적으로 ntlm, digest, basic 순서로 3가지 인증 방식을 제공한다. 순서를 변경 할 수 있고 하나 이상의 방법을 완전히 배제하지 않는다.
다음 속성에 따라 구성가능하고 아래 코드는 basic, ntlm 순서로 제공하고, digest는 사용지않는 구성의 예시이다.
-Dhttp.proxyAuth=basic,ntlm