이 문서는 Apache HTTP 서버를 이용해 하나 또는 여러개의 Atlassian 제품을 접속하는 통일된 URL 주소를 구성하는 방법을 제공한다.
Overview
서버 구성
접속 방법
(Client browser) → Atlassian applications (Jira, Confluence, ...)
http://jira.curvc.com -------------------------- http://192.168.1.10:8080
http://confluence.curvc.com --------------------------------- http://192.168.1.10:8090
http://bitbucket.curvc.com ---------------------------------------- http://192.168.1.11:7990
사전 조건
도메인 URL 사용시
- Atlassian application을 위한 도메인 등록 (또는 sub-domain, 예: jira.curvc.com)
Reverse Proxy 구성할 서버 준비
- OS: CentOS 7 (본 예제에서 사용)
- Apache HTTP 서버 설치
Application context 사용하지 않음
본 예에서는 http://curvc.com/jira 와 같이 "jira" context를 사용하지 않음을 가정한다. Context를 사용하여 reverse proxy 를 구성할 수 있지만 드문 구성이다.
CentOS SELinux policy 수정
- SELinux가 httpd 프로세스의 network 접속을 금지하기 때문에 허용하도록 설정
# > sudo /usr/sbin/setsebool -P httpd_can_network_connect 1
Step 1) Tomcat Connector 수정
Atlassian application을 종료하고 tomcat의 server.xml 파일을 수정한다.
Bitbucket 5.0 이상을 제외한 Atlassian application의 경우:
<Connector port=<default> maxThreads=<default> minSpareThreads=<default> connectionTimeout=<default> enableLookups=<default> maxHttpHeaderSize=<default> protocol=<default> useBodyEncodingForURI=<default> redirectPort=<default> acceptCount=<default> disableUploadTimeout=<default> proxyName="<subdomain>.<domain>.com" proxyPort="80" scheme="http"/>
line 12 ~ 14를 추가한다.
- proxyName: 제공될 application URL (예: jira.curvc.com)
- proxyPort: 제공될 application port (예: 80)
Bitbucket 5.0 이상의 경우:
링크를 참고하여 설정한다.
- 경로: <Bitbucket data home>/application-data/bitbucket/shared/bitbucket.properties
server.scheme=http server.proxy-port=80 server.proxy-name=bitbucket.curvc.com
설정 완료 후 application을 기동한다.
Step 2) Apache httpd.conf 수정
Application 구성 정보 로딩 설정
/etc/httpd/conf/httpd.conf
... IncludeOptional sites-enabled/*.conf
- 맨 마지막 줄에 추가
Step 3) Application을 위한 site 구성
/etc/httpd/site-available/jira.curvc.com.conf 파일 생성
<VirtualHost *:80> ProxyPreserveHost Off ProxyPreserveHost On RewriteEngine On ProxyVia Off <Proxy *> Order deny,allow Require all granted </Proxy> ProxyPass "/" "http://192.168.0.8:8080/" ProxyPassReverse "/" "http://192.168.0.8:8080/" ServerName jira.curvc.com RemoteIPHeader X-Forwarded-For </VirtualHost>
- ProxyPass, ProxyPassReverse: Application의 실제 주소 설정 ('/' 포함)
- ServiceName: 외부에 제공될 application 접속 주소
/etc/httpd/site-enabled/jira.curvc.com.conf → ../site-available/jira.curvc.com.conf 심볼릭 링크 파일 생성하여 apache 서버에 등록 준비
# > cd /etc/httpd/site-enabled # > ln -s ../site-available/jira.curvc.com.conf jira.curvc.com.conf
Step 4) Apache HTTP 서버 재기동
# > sudo systemctl restart httpd.service