Установка серверов · 7 min read · Jan 05, 2026
Установка многосерверной конфигурации с выделенными веб-, почтовыми, DNS и MySQL серверами на Debian 5.0 с ISPConfig 3
Установка многосерверной конфигурации с выделенными веб-, почтовыми, DNS и MySQL серверами на Debian 5.0 с ISPConfig 3
Версия 1.0
Автор: Тилл Брем
Это руководство описывает установку многосерверной конфигурации ISPConfig 3 с выделенными веб-, почтовыми, базами данных и двумя DNS серверами, которые управляются через единую панель управления ISPConfig 3. Описанная ниже конфигурация использует пять серверов и может быть легко расширена до большего количества серверов, просто добавив больше серверов. Например, если вы хотите иметь два почтовых сервера, выполните шаги настройки из главы 2 на обоих этих серверах. Если вы хотите настроить больше веб-серверов, установите ISPConfig на все остальные веб-серверы в экспертном режиме, кроме первого.
Чтобы узнать, как использовать ISPConfig 3, я настоятельно рекомендую скачать руководство ISPConfig 3.
На почти 300 страницах оно охватывает концепцию ISPConfig (администраторы, реселлеры, клиенты), объясняет, как установить и обновить ISPConfig 3, включает справочник для всех форм и полей форм в ISPConfig вместе с примерами допустимых вводов и предоставляет учебные пособия для самых распространенных задач в ISPConfig 3. Оно также описывает, как сделать ваш сервер более безопасным и содержит раздел по устранению неполадок в конце.
1 Установка пяти базовых систем Debian
В этой конфигурации будет один главный сервер (который запускает веб-сервер и интерфейс панели управления ISPConfig) и четыре вспомогательных сервера для базы данных, почты и DNS.
Чтобы установить кластерную конфигурацию, нам нужно пять серверов (или виртуальных серверов) с минимальной установкой Debian 5.0. Базовая установка описана в следующем руководстве в шагах 1 - 6:
https://www.howtoforge.com/perfect-server-debian-lenny-ispconfig3
Установите только шаги 1 - 6 из руководства по идеальному серверу и не устанавливайте другие шаги, так как они отличаются для кластерной конфигурации!
В моем примере я использую следующие имена хостов и IP-адреса для пяти серверов:
Веб-сервер
Имя хоста: web.example.tld
IP-адрес: 192.168.0.105
Почтовый сервер
Имя хоста: mail.example.tld
IP-адрес: 192.168.0.106
Сервер БД
Имя хоста: db.example.tld
IP-адрес: 192.168.0.107
DNS сервер (первичный)
Имя хоста: ns1.example.tld
IP-адрес: 192.168.0.108
DNS сервер (вторичный)
Имя хоста: ns2.example.tld
IP-адрес: 192.168.0.109
Где бы ни встречались эти имена хостов или IP-адреса в следующих шагах установки, вам нужно будет изменить их, чтобы они соответствовали IP-адресам и именам хостов ваших серверов.
2 Установка веб-сервера
Отредактируйте файл hosts и добавьте IP-адреса и имена хостов для всех серверов. Имена хостов и IP-адреса должны быть скорректированы в соответствии с вашей конфигурацией.
vi /etc/hosts127.0.0.1 localhost
192.168.0.105 web.example.tld
192.168.0.106 mail.example.tld
192.168.0.107 db.example.tld
192.168.0.108 ns1.example.tld
192.168.0.109 ns2.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Установите имя хоста сервера:
echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start
Отредактируйте файл sources.list…
vi /etc/apt/sources.list … и убедитесь, что он содержит следующую строку для включения изменяемого репозитория.
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-freeЗапустите…
apt-get update… чтобы обновить базу данных пакетов apt; затем выполните…
apt-get upgrade… чтобы установить последние обновления (если они есть).
Хорошей идеей будет синхронизировать системные часы с сервером NTP ( n etwork t ime p rotocol) через Интернет. Просто выполните…
apt-get -y install ntp ntpdate… и ваше системное время всегда будет синхронизировано.
Установите сервер MySQL. Экземпляр сервера MySQL необходим на каждом сервере, так как ISPConfig использует его для синхронизации конфигурации между серверами.
apt-get -y install mysql-client mysql-serverВведите новый пароль для MySQL, когда установщик запросит.
Мы хотим, чтобы MySQL слушал на всех интерфейсах на главном сервере, а не только на localhost, поэтому мы редактируем /etc/mysql/my.cnf и закомментируем строку bind-address = 127.0.0.1:
vi /etc/mysql/my.cnf[...]
# Вместо skip-networking по умолчанию теперь слушает только
# localhost, что более совместимо и не менее безопасно.
#bind-address = 127.0.0.1
[...] Затем перезапустите MySQL:
/etc/init.d/mysql restartТеперь установите Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear и mcrypt следующим образом:
apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby sudo Вы увидите следующий вопрос:
Веб-сервер для автоматической переустановки: <– apache2
Затем выполните следующую команду, чтобы включить модули Apache suexec, rewrite, ssl, actions и include:
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digestPureFTPd и quota можно установить следующей командой:
apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatoolОтредактируйте /etc/fstab. У меня он выглядит так (я добавил,usrquota,grpquota к разделу с точкой монтирования /):
vi /etc/fstab| # /etc/fstab: статическая информация о файловой системе. # # <файловая система> <точка монтирования> <тип> <опции> <дамп> <передача> proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1 /dev/sda5 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |
Чтобы включить квоты, выполните эти команды:
touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck -avugm
quotaon -avug
Установите vlogger, webalizer и awstats:
apt-get -y install vlogger webalizer awstats Установите Jailkit: Jailkit нужен только в том случае, если вы хотите chroot пользователей SSH. Его можно установить следующим образом (важно: Jailkit должен быть установлен до ISPConfig - его нельзя установить после!):
apt-get -y install build-essential autoconf automake1.9 libtool flex bisoncd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
tar xvfz jailkit-2.11.tar.gz
cd jailkit-2.11
./configure
make
make install
cd ..
rm -rf jailkit-2.11*
Установите fail2ban: Это необязательно, но рекомендуется, потому что монитор ISPConfig пытается показать журнал:
apt-get install fail2banДалее мы установим ISPConfig 3. Чтобы получить URL-адрес для загрузки последней стабильной версии ISPConfig 3, пожалуйста, посетите веб-сайт ISPConfig: http://www.ispconfig.org/ispconfig-3/download/
Этот сервер является главным сервером в нашей конфигурации, который запускает интерфейс панели управления ISPConfig. Чтобы разрешить другим экземплярам MySQL подключаться к базе данных MySQL на этом узле во время установки, мы должны добавить записи пользователя root MySQL в главную базу данных для каждого имени хоста и IP-адреса вспомогательного сервера. Самый простой способ сделать это - использовать веб-инструмент администрирования phpmyadmin, который мы уже установили. Откройте URL http://192.168.0.105/phpmyadmin в веб-браузере, войдите как пользователь root MySQL и выполните следующие запросы MySQL:
CREATE USER ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
В приведенных выше SQL-командах замените IP-адреса (192.168.0.106 - 192.168.0.109) на IP-адреса ваших серверов и замените mail.example.tld, db.example.tld, ns1.example.tld и ns2.example.tld на имена хостов ваших серверов и myrootpassword на желаемый пароль root.
Нажмите кнопку перезагрузки разрешений или перезапустите MySQL. Затем закройте phpmyadmin.
Вернитесь к оболочке server1.example.tld и загрузите последнюю стабильную версию ISPConfig 3:
cd /tmp
wget
http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
Затем запустите скрипт установки:
php -q install.phpВыберите язык (en,de) [en]: <– en
Режим установки (standard,expert) [standard]: <– expert
Полное квалифицированное имя хоста (FQDN) сервера, например server2.domain.tld [web.example.tld]: <– web.example.tld
Имя хоста сервера MySQL [localhost]: <– localhost
Имя пользователя root MySQL [root]: <– root
Пароль root MySQL []: <– Введите здесь ваш пароль root MySQL
База данных MySQL для создания [dbispconfig]: <– dbispconfig
Кодировка MySQL [utf8]: <– utf8
Должен ли этот сервер присоединиться к существующей многосерверной конфигурации ISPConfig (y,n) [n]: <– n
Настроить почту (y,n) [y]: <– n
Настроить Jailkit (y,n) [y]: <– y
Настроить FTP сервер (y,n) [y]: <– y
Настроить DNS сервер (y,n) [y]: <– n
Настроить сервер Apache (y,n) [y]: <– y
Настроить сервер брандмауэра (y,n) [y]: <–y
Установить веб-интерфейс ISPConfig (y,n) [y]: <–y
Порт ISPConfig [8080]: <– 8080
Очистите каталоги установки:
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
Get new posts in your inbox
No spam. Unsubscribe anytime.