1. 개요

위 그림은 Apache HTTP Server가 Atlassian 서버 애플리케이션의 리버스 프록시 역할을 하는 네트워크 토폴로지 입니다.
본 가이드는 이전 구성한 Atlassian의 제품에 Proxy 설정을 위한 Apache - Tomcat의 연동에 대한 가이드를 제공합니다.
2. Atlassian Application 구성
Apache와 연동할 Atlassian Application은 아래 가이드대로 구성되었으며 파일 위치 또한 아래 가이드 대로 구성시 설치된 위치 기반으로합니다.
Crowd: https://hons.io/crowd-install
Confluence: https://hons.io/confluence-install
Jira: https://hons.io/jira-install
2.1 Atlassian Application 중지
Atlassian Application을 중지하면 Tomcat도 함께 중지됩니다.
각 서비스 별로 Application을 중지하기 위한 스크립트는 아래 항목을 참고하십시오.
Crowd
/Atlassian/atlassian-crowd-5.1.1/apache-tomcat/stop_crowd.sh
Confluence
/Atlassian/atlassian-confluence-7.19.4/bin/stop-confluence.sh
Jira
/Atlassian/atlassian-jira-software-9.4.0-standalone/bin/stop-jira.sh
참고
/Atlassian 위치는 설치 시 설정한 초기 Path이며 각 환경에 맞게 /path/to/atlassian 를 설정하시면 됩니다.
2.2 커넥터 지시문 구성
Application의 server.xml
의 Connector를 수정해야합니다.
추가할 구문은 Connector
에 proxyName
proxyPort
scheme
입니다.
proxyName="192.168.11.122"
proxyName="example.domains.com"
proxyPort="80"
proxyPort="443"
scheme="http"
scheme="https"
환경에 맞게 추가합니다.
- 각 Atlassian Application의
server.xml
파일 위치는 아래와 같습니다.
Crowd
/Atlassian/atlassian-crowd-5.1.1/apache-tomcat/conf/server.xml
Confluence
/Atlassian/atlassian-confluence-7.19.4/conf/server.xml
Jira
/Atlassian/atlassian-jira-software-9.4.0-standalone/conf/server.xml



참고
non-SSL 커넥터 지시문에 삽입합니다.
이전에 작성된 가이드 대로 설치하셨으면 Connector은 하나 밖에 없어 그대로 추가하시면 됩니다.
3. Apache 구성
Atlassian은 단일 클라이언트에서 여러 가상 호스트를 허용하면서 Apache용 프록시, 게이트웨이 또는 캐시를 구현하는 mod_proxy
모듈을 사용할 것을 권장합니다
3.1 mod_proxy
모듈 활성화
a2enmod proxy_http
a2enmod proxy_wstunnel
a2enmod rewrite
service apache2 restart
3.2 mod_proxy
를 사용하여 가상 호스트 구성
Apache 리버스 프록시 뒤에서 단일 Atlassian 애플리케이션을 실행 중인 경우 다음 지시문과 함께 가상 호스트 블록을 사용합니다.
Ubuntu에서의 Apache conf 파일의 위치는 아래와 같습니다.
/etc/apache2/sites-available
아래 양식대로 Atlassian Application conf 파일을 작성합니다.
<VirtualHost *:80>
ServerName <subdomain>.<domain>.com
ProxyRequests Off
ProxyVia Off
<Proxy *>
Require all granted
</Proxy>
ProxyPass /<contextpath> http://<internal_domain>:<port>/<contextpath>
ProxyPassReverse /<contextpath> http://<internal_domain>:<port>/<contextpath>
</VirtualHost>

3.3 X-Forwarded-For 헤더 활성화
원본 IP(예: 프록시에 연결하는 사용자)가 프록시 IP가 아닌 Atlassian 애플리케이션으로 전송되도록 하는 선택적 단계입니다.
이것은 요청을 제출하는 사람을 추적하는 데 유용합니다. 그렇지 않으면 리버스 프록시가 IP를 마스킹할 수 있기 때문입니다.
이 변경이 완료되면 액세스 로그에 프록시뿐만 아니라 클라이언트의 IP와 프록시도 기록됩니다.
remoteip
모듈 활성화
a2enmod remoteip
RemoteIPHeader X-Forwarded-For
추가

- Apache 재시작
service apache2 restart
3.3 conf 파일 등록
Ubuntu의 경우 conf 파일을 작성하고 등록하는 과정을 진행해야합니다.
기존 conf 파일을 비활성화 및 새로 작성한 conf 파일을 등록하는 명령어는 아래와 같습니다.
# 기존 파일 비활성화
a2dissite 000-default.conf
a2dissite default-ssl.conf
# 신규 파일 활성화
a2ensite 001-atlassian.conf
3.4 Atlassian Application 시작
각 서비스 별로 Application을 시작하기 위한 스크립트는 아래 항목을 참고하십시오.
Crowd
/Atlassian/atlassian-crowd-5.1.1/apache-tomcat/start_crowd.sh
Confluence
/Atlassian/atlassian-confluence-7.19.4/bin/start-confluence.sh
Jira
/Atlassian/atlassian-jira-software-9.4.0-standalone/bin/start-jira.sh
3.5 적용사항 확인
정상 작동 확인



Reference
- Running Confluence behind Apache
https://confluence.atlassian.com/conf59/running-confluence-behind-apache-792499650.html - Using Apache with mod_proxy
https://confluence.atlassian.com/conf59/using-apache-with-mod_proxy-792499652.html - 연동 설정 가이드
https://confluence.atlassian.com/kb/proxying-atlassian-server-applications-with-apache-http-server-mod_proxy_http-806032611.html mod_proxy
의 프록시 주소 설정
http://www.alexsilcock.net/notes/trailing-slashes-when-reverse-proxying-with-mod_proxy/