HTTP-бэкэнд

Материал из ISPWiki

Перейти к: навигация, поиск

Содержание

Подготовка сервера

Если на текущем сервере нет второго сетевого интерфейса, то пропустите данный шаг.

Откройте файл /etc/network/interfaces

 # nano /etc/network/interfaces

и добавьте строки

 auto ethX
 iface ethX inet static
     address 10.0.0.7
     netmask 255.0.0.0

где X - это номер сетевого интерфейса.

Чтобы изменения вступили в силу, необходимо выполнить команду:

 # /etc/init.d/networking restart

Установка и настройка libnss-extrausers

Выполните установку дополнительного модуля для NSS сервиса, который предоставляет системе записи о пользователях и группах из дополнительных файлов: /var/lib/extrausers/passwd, /var/lib/extrausers/shadow и /var/lib/extrausers/groups.

 # apt-get install libnss-extrausers

Откройте файл /etc/nsswitch.conf

 # nano /etc/nsswitch.conf

и измените опции passwd, group и shadow

 ...
 passwd: compat extrausers
 group:  compat extrausers
 shadow: compat extrausers
 ...

Установка и настройка sshfs

Выполните установку утилиты для работы с сетевой файловой системой через SSH:

 # apt-get install sshfs

Откройте файл /etc/rc.local

 # nano /etc/rc.local

и добавьте строку

 /usr/bin/sshfs 10.0.0.1:/storage/etc /var/lib/extrausers

где 10.0.0.1 - это "плавающий" IP-адрес сервера хранилища.

Создайте директорию /root/.ssh:

 # mkdir /root/.ssh

Получите публичный ключ SSH сервера хранилища:

 # ssh root@10.0.0.1 "cat /root/.ssh/id_rsa.pub"

Откройте файл /root/.ssh/known_hosts

 # nano /root/.ssh/known_hosts

и добавьте строку

 10.0.0.1 X

где X - это полученный выше публичный ключ SSH сервера хранилища.

Создайте публичный ключ SSH:

 # ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ""

Получите публичный ключ SSH

 # cat /root/.ssh/id_rsa.pub

и добавьте его в список авторизованных ключей на сервере хранилища

 # ssh root@10.0.0.1 "echo \"X\" >> /root/.ssh/authorized_keys"

где X - это локальный публичный ключ SSH.

Таким образом Вы обменялись публичными ключами с сервером хранилища.

Установка и настройка NFS-сервера

Выполните установку утилит для работы с NFS-сервером:

 # apt-get install nfs-common

Откройте файл /etc/default/nfs-common

 # nano /etc/default/nfs-common

и измените опцию NEED_IDMAPD

 ...
 NEED_IDMAPD="yes"
 ...

Откройте файл /etc/idmapd.conf

 # nano /etc/idmapd.conf

и измените опции Domain в разделе General и Method в разделе Translation

 [General]
 Domain = cluster.lan
 ...
 [Translation]
 Method = nsswitch
 ...

Перезапустите NFS-сервер командой:

 # /etc/init.d/nfs-common restart

Настройка SSH-сервера

Откройте файл /etc/ssh/sshd_config

 # nano /etc/ssh/sshd_config

и измените опцию Port

 ...
 Port 222
 ...

Это сделано для того, чтобы SSH-сервер запускаемый из хранилища не конфликтовал с SSH-сервером Мастер-узла.

Перезапустите SSH-сервер командой:

 # /etc/init.d/ssh restart

Подключение хранилища данных

Создайте следующие директории необходимые для подключения хранилища:

 # mkdir -p /storage \
            /var/run-cluster/mysqld \
            /var/run-cluster/apache2 \
            /var/cluster/spool/exim4 \
            /var/cluster/log/account \
            /var/cluster/lib/exim4 \
            /var/httpd-logs

Откройте файл /etc/fstab

 # nano /etc/fstab

и добавьте строку

 10.0.0.1:/ /storage nfs4 rw,rsize=65000,wsize=65000,proto=tcp,soft,intr,noatime,noauto,actimeo=240,acregmin=10,acdirmin=30,timeo=50,async 0 0

Откройте файл /etc/rc.local

 # nano /etc/rc.local

и добавьте следующие строки

 /bin/mount /storage
 /bin/mount --bind /dev /storage/dev
 /bin/mount --bind /dev/pts /storage/dev/pts
 /bin/mount --bind /proc /storage/proc
 /bin/mount --bind /tmp /storage/tmp
 /bin/mount --bind /lib/modules /storage/lib/modules
 /bin/mount --bind /var/run-cluster /storage/var/run
 /bin/mount --bind /var/cache/debconf /storage/var/cache/debconf
 /bin/mount --bind /var/cluster/spool/exim4 /storage/var/spool/exim4
 /bin/mount --bind /var/cluster/log/account /storage/var/log/account
 /bin/mount --bind /var/cluster/lib/exim4 /storage/var/lib/exim4
 /bin/mount --bind /var/httpd-logs /storage/home/httpd-logs

Подключите хранилище данных:

 # chmod +x /etc/rc.local && /etc/rc.local

Настройка HTTP-бэкэнда

Добавьте публичный ключ ISPmanager Cluster в список авторизованных ключей на текущем сервере:

 # mkdir /root/.ssh && cat /storage/usr/local/ispmgr/etc/ssh-key.pub >> /root/.ssh/authorized_keys

Зарегистрируйте HTTP-бэкэнд в ISPmanager Cluster. Перейдите в раздел "Инструменты -> Бэкэнды" и добавьте HTTP-узел, указывая внутренний IP-адрес узла и пароль кластера:

Далее для вновь созданного бэкэнда зарегистрируйте его веб-серверы:

Откройте файл /etc/rc.local

 # nano /etc/rc.local

и добавьте следующие строки

 /usr/sbin/chroot /storage /etc/init.d/openntpd start
 /usr/sbin/chroot /storage /usr/local/ispmgr/etc/cluster_roles/init.d/ntpdate start
 /usr/sbin/chroot /storage /etc/init.d/exim4 start
 /usr/sbin/chroot /storage /etc/init.d/acct start
 /usr/sbin/chroot /storage /etc/init.d/ssh start
 /usr/sbin/chroot /storage /usr/local/ispmgr/sbin/sitectl start local

Выполните запуск веб-серверов:

 # chroot /storage usr/local/ispmgr/sbin/sitectl start local

Примечания

Для перераспределения www-доменов пользователей между бэкэндами в chroot-окружении необходимо выполнить команду

 # /usr/local/ispmgr/sbin/sitectl distribute

Причем для указания количества веб-серверов, на которых должен присутствовать www-домен, используется параметр MinServersPerHost конфигурационного файла панели.


FAQ

Q: После добавления www домена не перезапускается Apache

# /usr/local/ispmgr/sbin/sitectl graceful 10.10.10.2
Connecting to 10.10.10.2... [FAIL]

A:

  • проверить, что http нода доступна с мастера по 22 порту
  • проверить, что с мастера можно подключиться к http ноде по ssh с паролем, который указан в разделе "Бэкенды"
  • apache на http ноде должны быть запущены через sitectl, а не через обычный скрипт запуска. Проверить это можно через ps, apache должен быть запущен с указанием конфига:
# ps auxw | grep apache
root     25043  0.1  0.0 277952 16872 ?        Ss   05:24   0:00 /usr/sbin/apache2 -f /usr/local/ispmgr/etc/cluster_apache/configs/10.10.10.3.conf -k start
root     25048  0.0  0.0 277984  7660 ?        S    05:24   0:00 /usr/sbin/apache2 -f /usr/local/ispmgr/etc/cluster_apache/configs/10.10.10.4.conf -k start
Была ли эта информация полезной? Да | Нет
Личные инструменты