#背景
1つのマシンに2つ以上のMTAを構築したい場合がある。
例えば、大した負荷がかかるわけではないが、冗長化しておきたいメールシステムが、2構成以上ある場合、
小さなマシンを複数個立てるよりも2台のマシンに2構成を同居させたいような場合だ。
そのようなことをしたい状況が実際に起こった。
調べてみるとpostfixにはマルチインスタンス機能というものがあるらしく、これを使えば上記のようなことができそうだったので
Postfixの構築は経験豊富と到底言えない私が環境を構築してみた。
#やりたいこと
1台のPostfixに2つの別々の設定で動くMTAを構築する。
実際にはそのマシンを複製し、外側にロードバランサを立てて、そいつが通信を受け付ける。
#前提
- OSはCentOS7系
- 既にpostfixは構築済みで通常の送受信ができている
- SELinux関連の設定は省略(本件では無効化済み)
#手順
とりあえず現状チェック
systemctl status postfix
以下コマンドで、2環境目のpostfixを用意します。
postmulti -e init
postmulti -I postfix-2nd -e create
以下二つのファイルが出来上がります
/etc/postfix-2nd/main.cf
/etc/postfix-2nd/master.cf
ls /etc/postfix-2nd/
などで確認してみましょう。
上記の2ファイルは、新しくできた環境の設定ファイルなので自由に書き換えます。
ちなみに、私は以下の設定を行いました。
■/etc/postfix-2nd/main.cf
有効化
master_service_disable = inet
→ コメントアウト
インターネットに公開
inet_interfaces = localhost
→ inet_interfaces = all
アクセス許可
mynetworks = にリレーを可能するマシンのIPを入れる
■/etc/postfix-2nd/master.cf
SMTPポートの変更(通常ポートで開くと元からいた環境とかち合うため)
10025 inet n - n - - smtpd
サブミッションポートの変更(同上の理由)
10587 inet n - n - - smtpd -o smtpd_tls_security_level=encrypt
設定が完了したら、新しい環境を有効化していきます。
postmulti -i postfix-2nd -e enable
これで終了。なんと簡単な。
ちなみにこんなことする人はそう相違ないかと思いますが、-e initや -e enableなどを実行した後にファイルを上書いたりすると、
コマンド打った意味がなくなるので注意しましょう。(私は一回やらかしました)
続いて起動をしていきます。
postmulti -a -p status
postmulti -i postfix-2nd -p start
postmulti -a -p status
自動起動は、startをしておけば後は勝手に起動してくれるらしい。
気になる人は以下をして確認をしてみる。
systemctl restart postfix
postmulti -a -p status
reboot
postmulti -a -p status
#まとめ
かなり簡単に2台目のPostfixが用意できた。
#参考サイト
水銀室 Postfixをマルチインスタンスで起動する -CentOS最短構築支援-
http://hp.vector.co.jp/authors/VA022911/tec/centos/postfix_multi_instance.htm