Linux

Linux_proxy(Load blancing)

우당탕탕인생기 2023. 9. 1. 17:08

웹사이트를 운명하면서,  트래픽의 부하로 서버 오류가 날 수 있다.

이를 해결하기 위한 방법인 바로 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번으로 연결되게된다.