이 문서는 Confluence의 클러스터링 (node 2개) 설정 가이드를 공유하기 위해 작성되었다.
| Section |
|---|
| 도구명 | Confluence Data Center |
|---|
| 버전 | 9.2.3 |
|---|
| OS | Linux(Rocky 8) |
|---|
| 비고 | PostgreSQL 15 Java 17 |
|---|
|
목차
0. 클러스터링 준비
1) 클러스터링의 이점
- 고가용성 및 장애 조치: 클러스터의 한 노드가 다운되면 다른 노드가 로드를 담당하므로 사용자가 중단 없이 Confluence에 액세스할 수 있습니다.
- 대규모 성능: 클러스터에 추가된 각 노드는 동시 사용자 용량을 늘리고 사용자 활동이 증가함에 따라 응답 시간을 향상시킵니다.
- 즉각적인 확장성: 다운타임이나 추가 라이선스 비용 없이 클러스터에 새 노드를 추가합니다. 인덱스와 앱은 자동으로 동기화됩니다.
- 재해 복구: 전체 시스템 중단 시에도 비즈니스 연속성을 위해 오프사이트 재해 복구 시스템을 구축합니다. 공유 애플리케이션 인덱스를 통해 빠르게 백업 및 실행이 가능합니다.
- 롤링 업그레이드: 다운타임 없이 기능 릴리스의 최신 버그 수정 업데이트로 업그레이드하세요. 사용자에게 Confluence에 대한 중단 없는 액세스를 제공하는 동시에 사이트에 중요한 버그 수정 및 보안 업데이트를 적용하세요.
2) 클러스터링 구성 아키텍처
이 가이드에서는 다음과 같은 구성으로 클러스터링을 설정했습니다.
- 기존에 사용 중이던 Confluence에 노드를 추가합니다.
- 기존 서비스를 node 1번으로 하고, 추가 서버를 node 2번으로 지칭합니다.
- Node 1번에 PostgreSQL DB를 구축하고, Node 2번에서 이 DB에 액세스합니다.
- 로드 밸런서로써 Node 1번에 설치한 Nginx를 이용합니다.
3) node 1, 2번의 8090번 등 클러스터링을 위한 포트 방화벽 열기
| 코드 블럭 |
|---|
|
$ sudo firewall-cmd --permanent --add-port=8090/tcp // Confluence 기본 포트
$ sudo firewall-cmd --permanent --add-port=5701/tcp // Confluence용 Hazelcast 포트
$ sudo firewall-cmd --permanent --add-port=5801/tcp // Synchrony용 Hazelcast 포트
$ sudo firewall-cmd --permanent --add-port=25500/tcp // Synchrony를 위한 클러스터 기반 포트
$ sudo firewall-cmd --reload |
1. Confluence 설치
1) node1에 Confluence 설치 및 실행
이미 설치되어 있다면 생략
설치 가이드 참조
Confluence Data Center 설치 가이드
| 정보 |
|---|
node1 - Install Directory : /app/atlassian/confluence
- Local Home Directory : /data/atlassian/confluence-data
|
2) node2에 JAVA 설치
node 1번과 같은 경로에, JAVA_HOME 환경 변수도 동일하게 설치
2. 클러스터링 활성화
1) 클러스터링 메뉴 활성화
관리자 메뉴 → 클러스터링 → 클러스터 모드 활성화

2) Confluence node 1번 수동 종료
| 코드 블럭 |
|---|
| language | shell |
|---|
| linenumbers | true |
|---|
|
# 서비스로 중지하는 경우
$ sudo systemctl stop confluence
# stop.sh 파일 실행하는 경우
$ <install-directory>/bin/stop-confluence.sh |
attachments 파일을 shared-home으로 이동
| 코드 블럭 |
|---|
|
$ mv <home-directory>/attachments <home-directory>/shared-home |
3) node2에 node1의 설치 디렉토리 및 home 디렉토리 복사
node 2번에 설치 및 home 디렉토리 생성
| 코드 블럭 |
|---|
|
$ sudo mkdir -p /app/atlassian
$ sudo mkdir -p /data/atlassian |
node 1번의 설치 및 로컬 home 디렉토리를 node 2번으로 복사
| 코드 블럭 |
|---|
| language | shell |
|---|
| linenumbers | true |
|---|
|
# node 1번 서버에서 디렉토리를 2번 서버로 복사 전송
$ scp -r /app/atlassian/confluence root@<node2-ip-address>:/app/atlassian/confluence
$ scp -r /data/atlassian/confluence-home root@<node2-ip-address>:/data/atlassian/confluence-home
# node 2번에서 복사된 디렉토리 소유권 변경
$ chown -R confluence:confluence /app/atlassian/confluence/
$ chown -R confluence:confluence /data/atlassian/confluence-home/ |
- 로컬 홈 디렉토리를 복사하면 Confluence 검색 인덱스, 데이터베이스 및 클러스터 구성, 기타 모든 설정이 노드 2로 복사됩니다.
confluence.cfg.xml 파일 수정
| 코드 블럭 |
|---|
|
$ vi /data/atlassian/confluence-home/shared-home/confluence.cfg.xml
# 아래 각 노드에 맞게 추가
<property name="cluster.name">confluence-cluster</property>
<property name="cluster.node.name">node-1</property> // node-2
<property name="confluence.cluster.node.id">1</property> // 2
<property name="setupStep">complete</property> |
4) 로드밸런싱 설정
nginx 설정 파일에 로드 밸런서 설정 예시
| 코드 블럭 |
|---|
| language | nginx |
|---|
| theme | Emacs |
|---|
| title | 설정 파일 예시) /etc/nginx/conf.d/confluence.conf |
|---|
| linenumbers | true |
|---|
| collapse | true |
|---|
|
# upstream을 사용한 로드밸런싱
upstream confluence_cluster {
least_conn;
server 127.0.0.1:8090 max_fails=3 fail_timeout=10s;
server <node2-ip-address>:8090 max_fails=3 fail_timeout=10s;
}
server {
listen 8088;
server_name confluence.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name confluence.example.com;
ssl_certificate /etc/ssl/private/confluence.example.com.crt;
ssl_certificate_key /etc/ssl/private/confluence.example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://confluence_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
access_log /var/log/nginx/confluence.access.log;
error_log /var/log/nginx/confluence.error.log;
} |
5) DB 설정
PostgreSQL이 외부 IP에서 접속 가능한지 확인
| 코드 블럭 |
|---|
| language | shell |
|---|
| linenumbers | true |
|---|
|
$ vi /var/lib/pgsql/15/postgresql.conf
# listen_addresses = 'localhost'로 설정되어 있다면 아래처럼 변경
listen_addresses = '*'
# 방화벽 포트 오픈
$ sudo firewall-cmd --permanent --add-port=5432/tcp
$ sudo firewall-cmd --reload |
설정 파일 수정
| 코드 블럭 |
|---|
| language | shell |
|---|
| linenumbers | true |
|---|
|
$ vi /var/lib/pgsql/15/data/pg_hba.conf
# 아래 코드 추가
host all all <node2-ip-address> md5
# 적용 후 PostgreSQL 재시작
$ sudo systemctl restart postgresql-15 |
3. Confluence 시작 및 클러스터링 구성 설정
1) Confluence 시작
- node 1번과 node 2번 차례로 시작
- 웹브라우저로 Confluence 접근
2) 클러스터 구성에 필요한 정보 입력

3) 클러스터 동작 확인
→ 일반 환경 설정 → 클러스터링

참조