서버 설치 · 3 min read · Sep 30, 2025

Debian 8.4 Jessie에 ISPConfig 3.1을 사용하여 웹, 이메일 및 MySQL 데이터베이스 클러스터 설치하기

이 튜토리얼은 Debian 8에서 ISPConfig 3 제어판을 사용하여 중복성, 고가용성 및 로드 밸런싱을 위해 사용할 클러스터형 웹, 이메일, 데이터베이스 및 DNS 서버의 설치를 설명합니다. MySQL Master/Master 복제를 사용하여 서버 간에 MySQL 클라이언트 데이터베이스를 복제하고, Unison을 사용하여 /var/www(웹사이트)를 동기화하며, 메일은 Dovecot과 함께 동기화됩니다.

1 일반 참고사항

이 설정에서는 ISPConfig 제어판 인터페이스를 실행하는 마스터 서버와 마스터 서버의 웹(apache), 이메일(postfix 및 dovecot), dns(bind) 및 데이터베이스(MySQL 또는 MariaDB) 서비스를 미러링하는 슬레이브 서버가 하나씩 있습니다.

클러스터형 설정을 설치하려면 Debian 8.4 최소 설치가 된 두 대의 서버와 동일한 ISPConfig 버전이 필요합니다.

제 예제에서는 두 서버에 대해 다음 호스트 이름과 IP 주소를 사용합니다:

마스터 서버

호스트 이름: server1.example.tld
IP 주소: 192.168.0.105
IPv6 주소: 2001:db8::1

슬레이브 서버

호스트 이름: server2.example.tld
IP 주소: 192.168.0.106
IPv6 주소: 2001:db8::2

다음 설치 단계에서 이러한 호스트 이름이나 IP 주소가 발생하는 곳에서는 서버의 IP 및 호스트 이름에 맞게 변경해야 합니다.

모든 명령은 루트 사용자로 실행해야 합니다. MySQL에서 변경이 필요하면 MySQL에 루트 비밀번호로 로그인합니다:

mysql -u root -p

2 마스터 서버 설치

먼저 마스터 서버에 ISPConfig를 설치해야 합니다. 이 서버에 이미 ISPConfig가 설치되어 있다면 설치를 건너뛸 수 있습니다(기존 설치가 최신인지 확인하십시오).

The Perfect Server - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)에 따라 마스터 서버에 ISPConfig를 설치합니다.

슬레이브 서버를 /etc/hosts 파일에 추가합니다

vi /etc/hosts

그래서 다음과 같이 보이도록:

127.0.0.1       localhost
192.168.0.105   server1.example.tld server1  
2001:db8::1     server1.example.tld server1
192.168.0.106   server2.example.tld  
2001:db8::2     server2.example.tld

# 다음 줄은 IPv6 지원 호스트에 바람직합니다
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

3 슬레이브 서버 준비

The Perfect Server - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)에서 1 - 19단계를 실행합니다.

서버2에 ISPConfig를 아직 설치하지 마십시오.

마스터 서버를 /etc/hosts 파일에 추가합니다

vi /etc/hosts

그래서 다음과 같이 보이도록:

127.0.0.1       localhost
192.168.0.105   server1.example.tld  
2001:db8::1     server1.example.tld
192.168.0.106   server2.example.tld server2  
2001:db8::2     server2.example.tld server2

# 다음 줄은 IPv6 지원 호스트에 바람직합니다
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

4 서버1에서 서버2로의 비밀번호 없는 로그인

서버2에서:

서버2에서 루트 로그인을 비밀번호로 임시 허용합니다. /etc/sshd_config를 엽니다:

vi /etc/ssh/sshd_config

그리고

PermitRootLogin without-password

PermitRootLogin yes

로 변경합니다. 이후 ssh 데몬을 재시작합니다:

service ssh restart

서버1에서:

개인 키/공개 키 쌍을 생성합니다:

ssh-keygen
Generating public/private rsa key pair.  
Enter file in which to save the key (/root/.ssh/id_rsa): <-- ENTER  
Created directory '/root/.ssh'.  
Enter passphrase (empty for no passphrase): <-- ENTER  
Enter same passphrase again: <-- ENTER  
Your identification has been saved in /root/.ssh/id_rsa.  
Your public key has been saved in /root/.ssh/id_rsa.pub.  
The key fingerprint is:  
f3:d0:62:a7:24:6f:f0:1e:d1:64:a9:9f:12:6c:98:5a root@server1  
The key's randomart image is:  
+---[RSA 2048]----+  
|                 |  
|           .     |  
|          +      |  
|       + *       |  
|      E S +      |  
|    o O @ .      |  
|   .   B +       |  
|       o o       |  
|        .        |  
+-----------------+  
  

비밀번호를 입력하지 않는 것이 중요합니다. 그렇지 않으면 미러링이 사람의 상호작용 없이 작동하지 않으므로 ENTER를 누르십시오!

다음으로 공개 키를 server2.example.tld에 복사합니다:

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
The authenticity of host '192.168.0.106 (192.168.0.106)' can't be established.  
ECDSA key fingerprint is 25:d8:7a:ee:c2:4b:1d:92:a7:3d:16:26:95:56:62:4e.  
Are you sure you want to continue connecting (yes/no)? <-- yes (이것은 서버2에 처음 연결할 때만 표시됩니다)   
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed  
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: <- 서버2의 루트 비밀번호 입력

이제 머신에 로그인해 보십시오:

ssh [email protected]

그리고 /root/.ssh/authorized_keys를 확인하여 예상하지 못한 추가 키가 추가되지 않았는지 확인합니다.

cat /root/.ssh/authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBAPhiAexgEBexnw0rFG8lXwAuIsca/V+lhmv5lhF3BqUfAbL7e2sWlQlGhxZ8I2UnzZK8Ypffq6Ks+lp46yOs7MMXLqb7JBP9gkgqxyEWqOoUSt5hTE9ghupcCvE7rRMhefY5shLUnRkVH6hnCWe6yXSnH+Z8lHbcfp864GHkLDK1AAAAFQDddQckbfRG4C6LOQXTzRBpIiXzoQAAAIEAleevPHwi+a3fTDM2+Vm6EVqR5DkSLwDM7KVVNtFSkAY4GVCfhLFREsfuMkcBD9Bv2DrKF2Ay3OOh39269Z1rgYVk+/MFC6sYgB6apirMlHj3l4RR1g09LaM1OpRz7pc/GqIGsDt74D1ES2j0zrq5kslnX8wEWSHapPR0tziin6UAAACBAJHxgr+GKxAdWpxV5MkF+FTaKcxA2tWHJegjGFrYGU8BpzZ4VDFMiObuzBjZ+LrUs57BiwTGB/MQl9FKQEyEV4J+AgZCBxvg6n57YlVn6OEA0ukeJa29aFOcc0inEFfNhw2jAXt5LRyvuHD/C2gG78lwb6CxV02Z3sbTBdc43J6y [email protected]

비밀번호로 루트 로그인을 허용하지 않도록 설정합니다. /etc/sshd_config를 엽니다:

vi /etc/ssh/sshd_config

그리고

PermitRootLogin yes

PermitRootLogin without-password

로 변경합니다. 이후 ssh 데몬을 재시작합니다:

service ssh restart

서버2에서 로그아웃합니다:

exit
logout  
Connection to 192.168.0.106 closed.

이제 서버1로 돌아왔습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.