サーバー設定 · 5 min read · Sep 26, 2025
Debian 5.0 に ISPConfig 3 を使用して Web、Email、および MySQL データベースクラスター (ミラー) をインストールする
Debian 5.0 に ISPConfig 3 を使用して Web、Email、および MySQL データベースクラスター (ミラー) をインストールする
バージョン 1.0
著者: Till Brehm
このチュートリアルでは、冗長性、高可用性、および負荷分散のために使用されるクラスタ化された Web、Email、データベース、および DNS サーバーのインストールについて説明します。ISPConfig 3 コントロールパネルを使用して、Debian 5 での設定を行います。GlusterFS を使用してサーバー間でデータをミラーリングし、ISPConfig を使用して設定ファイルをミラーリングします。ここではデモンストレーションのために 2 台のサーバーのセットアップを使用しますが、GlusterFS の設定ファイルをわずかに変更するだけで、より多くのサーバーにスケールできます。
現在、MySQL クラスターのセットアップには 1 つの制限があります。2 番目のサーバーが起動するときに、MySQL デーモンは初期の innodb チェック中にロックの問題を抱えています。ここで私が使用している現在の回避策は、myisam のみで MySQL を起動することです。GlusterFS 上で innodb を使用して正常に動作している MySQL サーバーの報告がいくつかあるため、GlusterFS および / または MySQL 設定ファイルの微調整を行うことで innodb を使用することが可能であるはずです。ロックの問題の解決策を見つけて、このチュートリアルを更新しようと思います。GlusterFS 上での innodb の解決策を知っている方は、ぜひご連絡ください。2 番目のサーバーをホットスタンバイシステムとしてのみ使用する場合は、最初のサーバーが切断されているときにのみ 2 番目のサーバーで MySQL を起動すれば、innodb を使用できるはずです。
これは現在、概念実証のセットアップであるため、このセットアップが本番システムでどのようにスケールするかについての経験はまだありません。問題を引き起こす可能性がある唯一の部分は、共有 MySQL データディレクトリです。複数のサーバーから同時に MySQL データベースにアクセスするための別のソリューションは、MySQL クラスターセットアップ (http://www.mysql.com/products/database/cluster/) または MySQL マスター / マスター レプリケーション (https://www.howtoforge.com/mysql_master_master_replication) を使用することです。
ISPConfig 3 の使い方を学ぶために、ISPConfig 3 マニュアルをダウンロードすることを強くお勧めします。
300 ページ近くにわたり、ISPConfig の背後にある概念 (管理者、リセラー、クライアント) をカバーし、ISPConfig 3 のインストールと更新方法を説明し、ISPConfig のすべてのフォームとフォームフィールドのリファレンスを有効な入力の例とともに含み、ISPConfig 3 での最も一般的なタスクのチュートリアルを提供します。また、サーバーをより安全にする方法を説明し、最後にトラブルシューティングセクションが付いています。
1 2 つの基本システムの設定
このセットアップでは、1 台のマスターサーバー (ISPConfig コントロールパネルインターフェースを実行) と、マスターサーバーの Web (apache)、Email (postfix および dovecot)、およびデータベース (MySQL) サービスをミラーリングする 1 台のスレーブサーバーがあります。
クラスタ化されたセットアップをインストールするには、Debian 5.0 の最小インストールを持つ 2 台のサーバーが必要です。基本セットアップは、次のチュートリアルのステップ 1 - 6 に記載されています:
https://www.howtoforge.com/perfect-server-debian-lenny-ispconfig3
完璧なサーバーチュートリアルのステップ 1 - 6 のみをインストールし、クラスタ化されたセットアップには異なる他のステップはインストールしないでください!
私の例では、次のホスト名と IP アドレスを 2 台のサーバーに使用します:
マスターサーバー
ホスト名: server1.example.tld
IP アドレス: 192.168.0.105
スレーブサーバー
ホスト名: server2.example.tld
IP アドレス: 192.168.0.106
次のインストールステップでこれらのホスト名または IP アドレスが発生する場合は、サーバーの IP とホスト名に合わせて変更する必要があります。
2 2 台のサーバーのインストール
次の手順は、マスターサーバーとスレーブサーバーの両方で実行する必要があります。特定のステップがマスターまたはスレーブ専用の場合は、説明に赤で注記を追加しています。
vi /etc/hosts127.0.0.1 localhost
192.168.0.105 server1.example.tld
192.168.0.106 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サーバーのホスト名を設定します: echo server1.example.tld > /etc/hostname
/etc/init.d/hostname.sh start
最初のサーバーでは server1.example.tld を使用し、2 番目のサーバーでは server2.example.tld を使用します。
sources.list ファイルを編集します…
vi /etc/apt/sources.list … そして、次の 2 行が含まれていることを確認します。最初の行は ClamAV アンチウイルスソフトウェアと SpamAssassin の更新パッケージを取得するための debian volatile リポジトリ用で、2 番目の行は現在の GlusterFS パッケージを含む backports リポジトリ用です。
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb http://www.backports.org/debian/ lenny-backports main contrib non-free実行します…
apt-get install debian-backports-keyring
apt-get update
… backports リポジトリキーをインストールし、apt パッケージデータベースを更新します。その後、実行します…
apt-get upgrade… 最新の更新をインストールします (あれば)。
システムクロックをインターネット上の NTP ( n etwork t ime p rotocol) サーバーと同期させることは良いアイデアです。単に実行します…
apt-get -y install ntp ntpdate… これでシステム時間が常に同期されます。
postfix、dovecot、および mysql を 1 つのコマンドでインストールします:
apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d sudoインストーラーから新しい mysql のパスワードを求められたら入力し、次の質問には以下のように答えます:
Web ベースの管理用のディレクトリを作成しますか? <– いいえ
一般的な構成の種類は? <– インターネットサイト
メール名は? <– server1.mydomain.tld
SSL 証明書が必要ですか? <– はい
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 restartamavisd-new、SpamAssassin、および ClamAV をインストールするには、次のコマンドを実行します:
apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl 次に、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 次の質問が表示されます:
自動的に再構成する Web サーバー: <– 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
BIND DNS サーバーをインストールします:
apt-get -y install bind9 dnsutilsvlogger、webalizer、および awstats をインストールします:
apt-get -y install vlogger webalizer awstats Jailkit をインストールします: Jailkit は SSH ユーザーを chroot したい場合にのみ必要です。次のようにインストールできます (重要: 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 fail2banGlusterFS と Fuse をインストールします:
apt-get -y –force-yes -t lenny-backports install fuse-utils
apt-get -y –force-yes install glusterfs-server glusterfs-client
GlusterFS の例の設定ファイルを削除します:
rm -f /etc/glusterfs/*.vol GlusterFS ボリュームのデータディレクトリを作成します:
mkdir /data/
mkdir /data/export-mysql
mkdir /data/export-mysql-ns
mkdir /data/export-vmail
mkdir /data/export-vmail-ns
mkdir /data/export-www
mkdir /data/export-www-ns
GlusterFS サーバー設定ファイルを作成します:
vi /etc/glusterfs/glusterfsd.vol# MySQL サーバーボリュームの設定
volume posix-mysql
type storage/posix
option directory /data/export-mysql
option background-unlink yes
end-volume
volume locks-mysql
type features/locks
option mandatory-locks on
subvolumes posix-mysql
end-volume
volume brick-mysql
type performance/io-threads
option thread-count 8
subvolumes locks-mysql
end-volume
# vmail サーバーボリュームの設定
volume posix-vmail
type storage/posix
option directory /data/export-vmail
end-volume
volume locks-vmail
type features/locks
subvolumes posix-vmail
end-volume
volume brick-vmail
type performance/io-threads
option thread-count 8
subvolumes locks-vmail
end-volume
# www サーバーボリュームの設定
volume posix-www
type storage/posix
option directory /data/export-www
end-volume
volume locks-www
type features/locks
subvolumes posix-www
end-volume
volume brick-www
type performance/io-threads
option thread-count 8
subvolumes locks-www
end-volume
# すべてのボリュームをエクスポート
volume server
type protocol/server
option transport-type tcp
subvolumes brick-mysql brick-vmail brick-www
# MySQL ボリュームの認証オプション
option auth.addr.brick-mysql.allow 192.168.0.105,192.168.0.106
option auth.login.brick-mysql.allow user-mysql
option auth.login.user-mysql.password 7wQav7ExkFg6eW
# vmail ボリュームの認証オプション
option auth.addr.brick-vmail.allow 192.168.0.105,192.168.0.106
option auth.login.brick-vmail.allow user-vmail
option auth.login.user-vmail.password 7wQav7ExkFg6eW
# www の認証オプション
option auth.addr.brick-www.allow 192.168.0.105,192.168.0.106
option auth.login.brick-www.allow user-www
option auth.login.user-www.password 7wQav7ExkFg6eW
end-volumeサーバーの IP アドレスを使用して IP を置き換え、パスワード 7wQav7ExkFg6eW をお好みのパスワードに置き換えます。
GlusterFS サーバーを起動します:
/etc/init.d/glusterfs-server start 次に、GlusterFS ファイルシステムをマウントするために必要な 3 つのクライアントボリュームファイルを作成します。
vi /etc/glusterfs/glusterfs-mysql.volvolume remote1-mysql
type protocol/client
option transport-type tcp
option remote-host 192.168.0.105
option remote-subvolume brick-mysql
option username user-mysql
option password 7wQav7ExkFg6eW
end-volume
volume remote2-mysql
type protocol/client
option transport-type tcp
option remote-host 192.168.0.106
option remote-subvolume brick-mysql
option username user-mysql
option password 7wQav7ExkFg6eW
end-volume
volume replicate-mysql
type cluster/replicate
subvolumes remote1-mysql remote2-mysql
end-volume
volume cache-mysql
type performance/io-cache
option cache-size 25MB
subvolumes replicate-mysql
end-volumevi /etc/glusterfs/glusterfs-vmail.volvolume remote1-vmail
type protocol/client
option transport-type tcp
option remote-host 192.168.0.105
option remote-subvolume brick-vmail
option username user-vmail
option password 7wQav7ExkFg6eW
end-volume
volume remote2-vmail
type protocol/client
option transport-type tcp
option remote-host 192.168.0.106
option remote-subvolume brick-vmail
option username user-vmail
option password 7wQav7ExkFg6eW
end-volume
volume replicate-vmail
type cluster/replicate
subvolumes remote1-vmail remote2-vmail
end-volume
volume writebehind-vmail
type performance/write-behind
option window-size 1MB
subvolumes replicate-vmail
end-volume
volume cache-vmail
type performance/io-cache
option cache-size 256MB
subvolumes writebehind-vmail
end-volumevi /etc/glusterfs/glusterfs-www.volvolume remote1-www
type protocol/client
option transport-type tcp
option remote-host 192.168.0.105
option remote-subvolume brick-www
option username user-www
option password 7wQav7ExkFg6eW
end-volume
volume remote2-www
type protocol/client
option transport-type tcp
option remote-host 192.168.0.106
option remote-subvolume brick-www
option username user-www
option password 7wQav7ExkFg6eW
end-volume
volume replicate-www
type cluster/replicate
subvolumes remote1-www remote2-www
end-volume
volume writebehind-www
type performance/write-behind
option window-size 1MB
subvolumes replicate-www
end-volume
volume cache-www
type performance/io-cache
option cache-size 256MB
subvolumes writebehind-www
end-volumeボリュームをディレクトリにマウントする前に、いくつかのサービスを停止し、現在のデータをバックアップする必要があります:
/etc/init.d/mysql stop
/etc/init.d/apache2 stop
/etc/init.d/postfix stop
/etc/init.d/dovecot stop
mv /var/lib/mysql /var/lib/mysql_bak
mv /var/www /var/www_bak
mkdir /var/lib/mysql
mkdir /var/www
mkdir /var/vmail
vi /etc/fstab行を追加します:
/etc/glusterfs/glusterfs-mysql.vol /var/lib/mysql glusterfs defaults 0 0
/etc/glusterfs/glusterfs-vmail.vol /var/vmail glusterfs defaults 0 0
/etc/glusterfs/glusterfs-www.vol /var/www glusterfs defaults 0 0次に、次のコマンドを実行してドライブをマウントします:
mount -amysql ディレクトリの所有権をユーザーとグループ mysql に変更します:
chown mysql:mysql /var/lib/mysqlmysql と www データを戻します。
cp -prf /var/lib/mysql_bak/ /var/lib/mysql/
cp -prf /var/www_bak/ /var/www/
データを戻します (マスターサーバーでのみ!スレーブではこのステップをスキップします)。
innodb をオフにします。これは MySQL が起動するときにロックの問題を引き起こします。
vi /etc/mysql/my.cnf行を変更します:
#skip-innodbを:
skip-innodb と、my.cnf ファイルの [mysqld] セクションに次の行を追加します:
innodb_file_per_table スレーブサーバーを設定するときは、MySQL を再起動する前にマスターサーバーから /etc/mysql/debian.cnf ファイルをスレーブサーバーにコピーしてください!
再度サービスを起動します:
/etc/init.d/mysql start
/etc/init.d/apache2 start
/etc/init.d/postfix start
/etc/init.d/dovecot start
GlusterFS の起動順序を変更して、GlusterFS サーバーが常に MySQL よりも前に起動するようにします。
mv /etc/rc2.d/S20glusterfs-server /etc/rc2.d/S19glusterfs-server
mv /etc/rc3.d/S20glusterfs-server /etc/rc3.d/S16glusterfs-server
mv /etc/rc4.d/S20glusterfs-server /etc/rc4.d/S16glusterfs-server
mv /etc/rc5.d/S20glusterfs-server /etc/rc5.d/S16glusterfs-server
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。