Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Apache HTTP Server가 Atlassian 서버 애플리케이션의 리버스 프록시 역할을하는 방법에 대해 설명합니다.

참조 가이드 : https://confluence.atlassian.com/kb/proxying-atlassian-server-applications-with-apache-http-server-mod_proxy_http-806032611.html

사전 조건

서버 정보

  • 설치 OS : Ubuntu 18.04

  • Apache 2.4 버전 설치

  • Atlassian 제품(Jira, Confluence, Bitbucket, Crowd)

  • Domain URL 등록

Application context 사용 X

  • http://example.com/jira 와 같이 "jira" context를 사용하지 않음을 가정합니다.

1. Atlassian 어플리케이션 구성

1. 어플리케이션 중지
2. tomcat의 server.xml 파일 수정
 파일 위치 확인

server.xml파일 위치는 어플리케이션, 운영 체제 및 설치 위치에 따라 다릅니다.

Atlassian 어플리케이션의 일반적인 기본 설치 위치는 다음과 같습니다.

  • 리눅스 : /opt/atlassian/<application-name>

  • 윈도우 : C:\Program Files\Atlassian\<application-name>

  • 윈도우 : C:\Atlassian\<application-name>

Atlassian 어플리케이션 폴더 구조의 위치 :

<install-path> : 시스템에서 응용 프로그램이 설치된 위치를 나타냅니다.

어플리케이션

server.xml 위치

Bamboo

<install-path>/conf/

Confluence

<install-path>/conf/

Crowd

<install-path>/apache-tomcat/conf/

JIRA applications

<install-path>/conf/

Bitbucket Server

<Bitbucket home directory>/shared/bitbucket.properties

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"      ## 제공될 어플리케이션 URL
	proxyPort="80"                            ## 제공될 어플리케이션 port
	scheme="http"/>


Bitbucket 5.0 이상의 경우:
<Bitbucket home directory>/shared/bitbucket.properties 파일 수정

server.scheme=http
server.proxy-port=80                         ## 제공될 어플리케이션 port
server.proxy-name=<subdomain>.<domain>.com   ## 제공될 어플리케이션 URL
3. 어플리케이션 재시작

2. Apache HTTP Server 구성

Atlassian은 Apache에 프록시, 게이트웨이 또는 캐시를 구현하는 동시에 단일 클라이언트에서 여러 가상 호스트를 허용 하는 mod_proxy 모듈을 사용하도록 권장합니다.

1. 아파치에서mod_proxy모듈 활성화
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_wstunnel
$ sudo a2enmod rewrite
$ service apache2 restart
2. mod_proxy가상 호스트 구성 

/etc/apache2/sites-available/<subdomain>.<domain>.com.conf 파일 생성

<VirtualHost *:80>
    ServerName <subdomain>.<domain>.com
     
    ProxyRequests Off
    ProxyVia Off
     
    <Proxy *>
         Require all granted
    </Proxy>
 
    ProxyPass / http://<internal_domain>:<port>/
    ProxyPassReverse / http://<internal_domain>:<port>/
</VirtualHost>
 Confluence 구성 파일

Confluence의 경우 synchrony 설정으로 인하여 다른 어플리케이션과 다르게 구성됩니다.

# Put this after the other LoadModule directives
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

# Put this in the main section of your configuration (or virtual host, if using Apache virtual hosts)
<VirtualHost *:80>
 ServerName <subdomain>.<domain>.com
  ProxyRequests Off
  ProxyPreserveHost On

  RewriteEngine On
  RewriteCond %{REQUEST_URI} !^/synchrony
  RewriteRule ^/(.*) http://<internal_domain>:8091/$1 [P]

  <Proxy *>
      Require all granted
  </Proxy>

  ProxyPass /synchrony http://<internal_domain>:8091/synchrony

  <Location /synchrony>
      Require all granted
      RewriteEngine on
      RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
      RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
      RewriteRule .* ws://<internal_domain>:8091%{REQUEST_URI} [P]
  </Location>

  ProxyPass / http://<internal_domain>:<port>/
  ProxyPassReverse / http://<internal_domain>:<port>/
  
  <Location />
      Require all granted
  </Location>
</VirtualHost>
3.  심볼릭 링크 생성

Apache 서버에 등록하기 위해/etc/apache2/sites-available/<subdomain>.<domain>.com.conf 심볼릭 링크

$ cd /etc/apache2/site-enabled
$ ln -s ../sites-available/<subdomain>.<domain>.com.conf <subdomain>.<domain>.com.conf
4. Apache HTTP 서버 재기동
$ sudo service apache2 restart

3. 최종 구성

1. 어플리케이션 URL 변경

각 Atlassian 어플리케이션에 대해 기본 URL을 프록시에서 구성한 주소(예 : Apache HTTP Server가 제공할 URL)로 설정

 2. HTTP 압축 비활성화

프록시와 Tomcat에서 압축을 실행하면 하나의 Atlassian 어플리케이션을 다른 Atlassian 어플리케이션과 통합 할 때 문제가 발생할 수 있습니다. JIRA 어플리케이션 및 Confluence에 대해 HTTP 압축을 비활성화하는 것이 좋습니다.

  • Jira : 시스템 - 일반 설정 - gzip 암축 사용 해제

  • Confluence : 일반 환경 설정 - 기본 구성 - HTTP 응답 압축 체크 해제

  • No labels