confluence 설치 및 업그레이드

atlassian confluence 6.10 download 버전을 설치하는 절차를 설명하며 대상 OS 는 Linux (RHEL/CentOS, Ubuntu)입니다.

사전 준비와 제약 사항

  1. 지원하는 운영체제는 공식적으로 Windows, Linux 이므로 이 두가지를 권장합니다. 

  2. DBMS 를 사전에 준비하며 PostgreSQL 이나 MySQL 을 권장합니다.

    지원하는 DBMS 목록은 Supported Platforms 을 참고하세요.

  3. JDK 8 버전이 설치되어 있어야 하며 Oracle 이나 AdoptOpenJDK 만 지원합니다. (Azul 사의 Zulu 는 미지원)
  4. 설치 유형은 installer 와 WAR 등 여러 가지가 있지만 tomcat 을 내장한 standalone 패키지 기준입니다.
  5. Web Server 를 앞에 두고 confluence 와 reverse proxy 방식으로 동작하는 방식으로 설명합니다. (포워드 프록시(forward proxy) 리버스 프록시(reverse proxy) 의 차이)

Confluence 다운로드

  1. https://www.atlassian.com/software/confluence/download 에서 설치하려는 OS 에 맞는 설치본을 다운받습니다. Standalone (TAR.GZ Archive) 를 다운받으면 된다.
  2. 적당한 폴더에 압축을 푼다.

    tar zxvf atlassian-confluence-5.2.5

     

  3. 설치한 DBMS 용 JDBC 를 다운받아서 압축을 푼 후에 나온 jar 파일을 atlassian-confluence-xxxx 내의 lib 폴더에 복사한다. MySQL용 JDBC는 http://dev.mysql.com/downloads/connector/j/ 에서 다운받는다.

    cp mysql-connector-java-5.1.28-bin.jar atlassian-confluence-5.2.5/lib
  4. atlassian-confluence-5.2.5 폴더로 이동한후에 conf/server.xml 을 수정할 부분이 있으면 수정한다. 

  5. confluence/WEB-INF/classes/confluence-init.properties  파일을 에디터로 열어서 confluence.home의 절대경로를 설정해 준다. 해당 경로는 첨부파일 및 confluence 설정파일이 저장되는 곳이니 confluence 를 운영하게 되면 반드시 백업해줘야 한다.

    ## 설정예
    confluence.home=/var/atlassian/confluence

    symbolic link 폴더일 경우 실제 폴더의 절대 경로를 적어줘야 한다.

DBMS 설정

DBMS는 MySQL 5.6 을 권장(자세한 설치는 Database Setup For MySQL 참고)


confluence 를 구동할 계정 및 database를 생성한다. 

MySQL용 script
CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON confluence.* TO 'confluenceuser'@'localhost' IDENTIFIED BY 'confluencepass';


my.cnf 에 다음 내용 추가

skip-character-set-client-handshake
collation-server=utf8_unicode_ci
character-set-server=utf8

max_allowed_packet = 512M
innodb_log_file_size=2GB


MySQL 재시작

my.cnf에 다음 내용이 있으면 삭제할 것


sql_mode = NO_AUTO_VALUE_ON_ZERO



TOMCAT 설정

conf/server.xml 을 열어서 "HTTPS - Proxying Confluence via Apache or Nginx over HTTPS" 아래의 Connector 부분 주석을 해제합니다.

 <Connector port="8090" connectionTimeout="20000" redirectPort="8443"
                   maxThreads="48" minSpareThreads="10"
                   enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
                   protocol="org.apache.coyote.http11.Http11NioProtocol"
                   scheme="https" secure="true" proxyName="<subdomain>.<domain>.com" proxyPort="443"/>

포트는 기본 설정을 권장하며 다음 항목을 수정해야 합니다.

  • proxyNam: 실제 서비스하는 도메인을 기술하며 도메인이 wiki.example.com 일 경우 proxyName="wiki.example.com" 으로 설정합니다.
  • proxyPort:  HTTPS 포트를 기술합니다.


HTTP 서버와 연계

Apache httpd  설정

# 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)
 
  ProxyRequests Off
  ProxyPreserveHost On
    
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !^/synchrony
  RewriteRule ^/(.*) http://<domain>:8090/$1 [P]

  <Proxy *>
      Require all granted
  </Proxy>

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

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

  ProxyPass / http://<domain>:8090
  ProxyPassReverse / http://<domain>:8090
   
  <Location />
      Require all granted
  </Location>


nginx 설정

최초 설치시 시간이 오래 걸리므로 gateway 타임아웃 에러 방지를 위해 proxy_connect_timeout 등의 설정을 해줍니다.

 location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # gateway timeout 방지
        proxy_connect_timeout 3000;
        proxy_send_timeout 3000;
        proxy_read_timeout 3000;
        send_timeout 3000;
    }



 

동시 편집 사용

confluence 6부터 동시 편집 기능이 추가되어 별도의 context 설정 필요(/synchrony, 8091)


 Click here to expand...
 location /synchrony {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8091/synchrony;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
	
    # confluence
    location / {
        proxy_pass http://127.0.0.1:11080;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }


SELinux context 추가

semanage port -a -p tcp -t http_port_t 8091


설치

  1. 구동
  2. 설치 유형 선택
     
  3. Add On 선택
     
  4. 라이선스 입력
     
  5. DB 선택
     
  6. JDBC 
     
  7. 연결 정보 설정
     
  8. 스키마를 만드는데 시간이 꽤 걸림. 완료되면 샘플 사이트를 만들지 물어봄. 
     
  9. JIRA 와 계정을 연결할지 물어봄. JIRA 가 있을 경우 Connect to JIRA 클릭
     
  10. JIRA 연결 정보와 관리자 계정 입력
     
  11. 다음을 눌러서 설치 완료


같이 보기