Bamboo 로드 밸런서 설치 및 구성
로드 밸런서에서 프로토콜 및 상태 확인 구성
로드 밸런서는 다음 프로토콜을 프록시해야 합니다.
프로토콜 | 로드 밸런서의 일반적인 포트 | Bamboo 클러스터 노드의 일반 포트 | 참고 |
---|---|---|---|
HTTP | 80 | 8085 | HTTP 모드. 세션 선호도("sticky sessions")는 52자 |
HTTPS | 443 | 8085 | HTTP 모드. 로드 밸런서에서 SSL을 종료하고 Bamboo 클러스터 노드에 일반 HTTP를 실행하는 것이 좋습니다. |
TCP | 54663 | 54663 | TCP 모드. 원격 에이전트 연결용 |
로드 밸런서는 BAMBOOSESSIONID
쿠키를 사용하여 세션 선호도("sticky sessions")를 지원해야 합니다. Bamboo Data Center는 로드 밸런서가 항상 각 사용자의 요청을 동일한 클러스터 노드로 보낸다고 가정합니다. 그렇지 않으면 사용자가 예기치 않게 로그아웃되거나 HTTP 세션에 저장될 수 있는 다른 정보가 손실될 수 있습니다.
로드 밸런서를 선택할 때는 HTTP, HTTPS 및 TCP 프로토콜을 지원해야 합니다.
참고:
Apache는 TCP 모드 로드 밸런싱을 지원하지 않습니다.
1.5.0 이전 버전의 HAProxy는 HTTPS를 지원하지 않습니다.
로드 밸런서 설정
본 예제는 오픈 소스 소프트웨어 로드 밸런서인 HAProxy를 기반으로 작성 하였습니다.
$ vi /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local0
log 127.0.0.1 local1 debug
maxconn 4096
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
timeout connect 5000
timeout client 50000
timeout server 50000
frontend localnodes
bind *:80
mode http
# stats enable
# stats uri /haproxy?stats
# stats realm Strictly\ Private
# stats hide-version
# stats auth admin:SECRET_PASSWORD
default_backend nodes
frontend mainjms
bind *:54663
option tcplog
mode tcp
default_backend brokers
backend nodes
mode http
balance roundrobin
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
option httpchk GET /rest/api/latest/status HTTP/1.1\r\nHost:\ 127.0.0.1
cookie BAMBOOSESSIONID insert nocache
server bamboo1 192.168.0.1:8085 check cookie bamboo1
# server bamboo2 192.168.0.2:8085 check cookie bamboo2
backend brokers
mode tcp
option httpchk GET /rest/api/latest/status HTTP/1.1\r\nHost:\ 127.0.0.1
server bambooTcp1 192.168.0.1:54663 check port 54663
# server bambooTcp2 192.168.0.2:54663 check port 54663