[클라우드 With리눅스/NFS 서버, 웹서버, HA Proxy 실습]

SooYeon Yeon·2022년 8월 18일

클라우드 With리눅스

목록 보기
18/39
post-thumbnail

실습 시나리오

  1. NFS 서버는 웹서버에서만 접속할 수 있도록 한다.
  2. 웹서버로 접속 시 NFS 서버의 index.html이 보이도록 한다.
  3. 웹서버 운영자는 접속한 사람의 로그를 볼 수 있다.
  4. HA Proxy는 Frontend의 default_backend를 지정한다.
  5. HA Proxy (192.168.1.117)로 접속하면 웹서버 IP로 Round Robin 으로 로드 밸런싱 한다.
  6. 결론적으로, HA Proxy에 접속하면 웹서버 둘 중 하나로 들어가지게 되는데, 그 index는 NFS 서버의 index.html이다.

NFS 서버 (192.168.1.114)

  1. /added 디렉토리 권한 변경

    chmod 777 /added
  2. /added에 index.html 파일 생성

    touch /added/index.html
    vi /added/index.html
  3. 파일에 내용 입력

  4. nfs-utils 설치 확인

    yum -y install nfs-utils
  1. /etc/exports에 접근 가능하게 할 IP 작성

    vi /etc/exports

    파일 내용 추가

    /added  192.168.1.115(rw,sync,no_root_squash)
    /added  192.168.1.116(rw,sync,no_root_squash)
  1. nfs-server 재실행

    systemctl restart nfs-server
    
    # 재부팅하고서도 enable하려면
    systemctl enable nfs-server

웹 서버 (192.168.1.115, 192.168.1.116)

.115

# 1. httpd 설치
yum -y install httpd

# 2. httpd 상태 확인
systemctl status httpd

# 3. 내 main.html 확인
cat /var/www/html/main.html

# 4. NFS 서버 확인
showmount -e 192.168.1.114

# 5. added 디렉토리 생성
mkdir /added

# 6. NFS 서버 마운트
mount -t nfs 192.168.1.114:/added /added

# 7. 파일 복사
cp /added/index.html /var/www/html/main.html

# 8. 접속 로그 확인
tail -3f /var/log/httpd/access_log

<사진> # 8. 접속 로그

HA Proxy

http back 내의 sessions 수가 순차적으로 증가하는 지 확인하면 정상적으로

LoadBallance 되고 있는 것으로 판단할 수 있다.

[결과 화면]

  • Browser
http://192.168.1.117/

  • Browser
http://192.168.1.117/haproxy?stats
  • 기존 파일의 내용 중 3개 부분을 삭제하고 아래 내용으로 대체한다.

(활용)

현재 서버는 2개의 DB 서버를 운영 중이고, 2개의 DB 를 로드 벨런싱 하는 예시

  • 사용자 / 개발자가 접근하는 DB 서버 주소

    • 192.168.1.119 : 3306
  • 현재 서버가 지니고 있는 DB 서버

    • 192.168.1.99:3306
    • 192.168.1.109:3306
**frontend db_front
     bind 192.168.1.119:3306 # 192.168.1.199 의 3306 db 로 접근하는 대상에 대해서 밸런싱 한다.
		 state uri /haproxy?stats
		 default_backend mysql_db

backend mysql_db
		balance roundrobin
		server mysql_db1 192.168.1.99:3306 check
		server mysql_db2 192.168.1.109:3306 check**
**frontend http_front # frontend 에 속하며, Group 은 http_front 그룹이다. 
     bind *:80 # 모든 IP 로 80포트로 접근하는 대상에 대해서 처리한다. 
     stats uri /haproxy?stats # status 를 체크할수 있는 url 로 서버/haproxy?status 로 접근
     default_backend http_back # 해당 front_end 로 접근하는 대상은 backend 중 http_back 그룹으로 보낸다.**

**backend http_back # backend 중 http_back 그룹으로 설정하였다. (status 에서도 동일 이름 출력)
     balance roundrobin # roundrobin 방식으로, 아래 사이트를 순차적으로 접근하게 한다.
     server my_server1 192.168.1.115:80 check # 접근 대상 site 1번이며, 서버의 닉네임은 my_server1 이고, 해당 서버 ip 와 port 에 접근하도록 한다. check 는 health 체크를 의미한다.
     server my_server2 192.168.1.116:80 check # 접근 대상 site 2번이며, 서버의 닉네임은 my_server2 이고, 해당 서버 ip 와 port 에 접근하도록 한다. check 는 health 체크를 의미한다.**
vi /etc/haproxy/haproxy.cfg

[코드 설명]

0개의 댓글