(리눅스) 04. WEB – DB 로드밸런싱

1. 구성 파일 수정

(변경 전)

# lb
frontend haproxy-main
        bind *:80
        option forwardfor
        default_backend apache_webserver

backend apache_webserver
        balance roundrobin
        server web01 192.168.56.210:80
        server web02 192.168.56.220:80

(변경 후)

# lb
# vim /etc/haproxy/haproxy.cfg

frontend web-lb
        bind *:80
        option forwardfor
        default_backend webserver

backend webserver
        balance roundrobin
        server web01 192.168.56.210:80
        server web02 192.168.56.220:80

frontend db-lb
        bind *:3306
        mode tcp
        option forwardfor
        default_backend dbserver

backend dbserver
        balance roundrobin
        server db-m 192.168.56.230:3306
        server db-s 192.168.56.240:3306

lb 서버에 설정을 추가하여 db와 웹의 균형을 맞춥니다.

2. 서비스 재시작

sudo systemctl restart haproxy.service

3. web01, web02 index.php 편집

# vim /var/www/html/index.php
<?php
$server_addr = "192.168.56.200"; # LB 서버 IP 주소
$user_name = "web_user";
$password = "dkagh1.";
$db_name = "web_db";
$connection = mysqli_connect($server_addr, $user_name, $password, $db_name);
$query = "SELECT * FROM web_tb";
$rst = mysqli_query($connection, $query);

if (mysqli_num_rows($rst) > 0) {
  while($i = mysqli_fetch_assoc($rst)) {
    echo "id : "  .  $i("id")  .  " | name : "  .  $i("name")  .   "<br>" ;
  }
}
mysqli_close($connection);
?>

4. 연결 확인


(리눅스) 04. WEB - DB 로드밸런싱 1
로드밸런서 IP 접속 시 DB가 정상적으로 연결되었는지 확인