웹사이트를 운명하면서, 트래픽의 부하로 서버 오류가 날 수 있다.
이를 해결하기 위한 방법인 바로 Load blancing, 로드밸런싱 이다.
로드밸런싱
- reverse proxy : 사용자의 트래픽을 내부 서버로 분산한다,
- forward proxy : 내부 사용자의 트래픽을 proxy 서버로 전달한다.
로드밸런싱 기법의 종류
- 라운드 로빈 방식 : 로드밸런싱 대상을 서버에 순서대로 할당받는 방식으로, 균등하게 분산이 이뤄진다,
- 가중 라운드 로빈 방식: 서로 다른 처리 용량을 지정해주는 방식으로, 각 서버에 가중치를 부여 할 수 있다.
- 최소 연결 방식 : 동적 분산 알고리즘으로 각 서버에에서 부하가 적은곳을 우선으로 트래픽을 분산시킨다.
리눅스에서는 haproxy를 통해서 실습해보도록 하겠다.
haproxy 로드밸런싱
순서 |
1. haproxy 설치 |
2. haproxy.conf 설정 파일 수정 |
3. 방화벽 및 시스템 시작 |
- haproxy 설치
yun install -y haproxy
- haproxy.conf 설정
경로는 /etc/htproxy/haproxy.cfg 이다.
vi /etc/haproxy/haproxy.cfg
이렇게 편집모드가 나오는데, 그 중 포트번호와 backend app에서 웹페이지와 연결해주어야 한다.
frontend main
bind *:80 ## http 포트인 80번 포트로 설정한다.
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
# use_backend static if url_static # 만약 웹페이지에 그림이나 일부 컨텐츠가 잘 안보일 경우 주석 처리 해준다.
default_backend app
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
balance roundrobin
server static 127.0.0.1:4331 check
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
balance roundrobin
server app1 10.0.0.12:80 check # 웹사이트1 주소
server app2 10.0.0.13:80 check # 웹사이트2 주소
# server app3 127.0.0.1:5003 check
# server app4 127.0.0.1:5004 check
~
- 80번 포트를 열어주고, haproxy을 실행시킨다.
firewall-cmd --add-port=80/tcp
systemctl start haproxy
이러면 proxy 서버 ip인 10.0.0.11로 접속하면 웹사이트 1 번이나 웹사이트 2번으로 연결되게된다.
'Linux' 카테고리의 다른 글
Linux_ mail 서버 생성 및 주고 받기 (0) | 2023.09.10 |
---|---|
Linux_Nginx + wordpress + mysql 연결 (0) | 2023.09.01 |
Linux _ssh 설정 (0) | 2023.08.30 |
Linux_ wordpress , mysql(8.0) , php(8.0) 연동 (0) | 2023.08.26 |
Linux 명령어 - (6) server 관리 - DNS Virtual host, 사용자제어 (0) | 2023.08.22 |