Keepalived를 활용한 NGINX 서버 이중화 구성
이 블로그 글에서는 Keepalived를 사용하여 NGINX 서버의 이중화 구성을 설정하는 방법에 대해 설명하겠습니다. 이중화 구성은 웹 서비스의 고가용성을 보장하는 데 중요합니다. Keepalived는 Linux 환경에서 가상 IP를 통해 이러한 고가용성을 구현하는 데 사용됩니다.
필요 조건
- 두 대의 Linux 서버 (여기서는 하나는 Master, 다른 하나는 Backup 서버로 지칭)
- 각 서버에 설치된 NGINX
- Keepalived 설치 가능성
구성 과정
Step 1: Keepalived 설치
먼저, Master와 Backup 서버 모두에 Keepalived를 설치합니다.
Debian/Ubuntu 기반 시스템:
sudo apt-get install keepalived
Red Hat/CentOS 기반 시스템:
sudo yum install keepalived
Step 2: NGINX 상태 확인 스크립트 작성
NGINX의 상태를 체크하는 스크립트를 **/etc/nginx/check_nginx.sh**에 작성합니다. 이 스크립트는 NGINX 프로세스가 실행 중인지 확인합니다.
#!/bin/sh
if [ -z "$(pidof nginx)" ]; then
exit 1
fi
이 스크립트에 실행 권한을 부여합니다:
sudo chmod +x /etc/nginx/check_nginx.sh
Step 3: Keepalived 설정
Keepalived를 통해 Master와 Backup 서버의 설정을 구성합니다. /etc/keepalived/keepalived.conf 파일에서 아래와 같이 설정합니다.
vrrp_script chk_nginx {
script "/etc/nginx/check_nginx.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER # Backup 서버에서는 이 값을 BACKUP으로 변경
interface eth0 # 사용 중인 네트워크 인터페이스에 맞게 변경
virtual_router_id 51
priority 100 # Backup 서버에서는 이 값을 99 등으로 낮게 설정
advert_int 1
authentication {
auth_type PASS
auth_pass 12345 # 강력한 패스워드로 변경
}
virtual_ipaddress {
192.168.1.10 # 공유할 가상 IP 주소
}
track_script {
chk_nginx
}
}
Step 4: Keepalived 서비스 시작 및 상태 확인
설정을 적용한 후에 Keepalived 서비스를 재시작하고, 그 상태를 확인합니다.
sudo systemctl restart keepalived
sudo systemctl status keepalived
결론
이제 Master와 Backup 서버가 Keepalived를 통해 이중화되어 있으며, 하나의 서버에 문제가 발생할 경우 다른 서버가 자동으로 대체 역할을 수행합니다. 이를 통해 서비스의 지속적인 가용성을 보장할 수 있으며, 웹 서비스의 안정성과 신뢰성이 크게 향상됩니다.
'server' 카테고리의 다른 글
Ubuntu 서버에서 CLI를 이용해 바이러스 스캔 방법(ClamVA 백신) (0) | 2020.06.26 |
---|---|
SSH 자동 로그인 적용 방법 (ssh key 방식) (0) | 2020.06.12 |
scp 명령어를 이용하여 원격으로 파일/폴더 복사하기 (0) | 2020.06.10 |
네트워크 기초 지식 (0) | 2020.06.10 |
scp 패스워드 자동으로 입력하는 방법 (sshpass) (0) | 2020.06.09 |