
私は php5-fpm を実行する 2 台のサーバーと nginx を実行する 1 台のロード バランサーを持っています。3 台のサーバーは nfs を使用して /var/www/drupal を共有しています。nfs は正常に動作しています。2 台のサーバーのデータベースを、mysql マスター マスター レプリケーションを使用してレプリケートしました。iptables ルールを追加するまではすべて正常に動作していました。iptables スクリプトでは、最初にすべてのチェーンをドロップしてから、必要なチェーンを受け入れます。それ以外にドロップ ステートメントはありません。次のように、mysql レプリケーション用にポート 3306 を開きました (ルールは両方のサーバーにあります)
iptables -A INPUT -p tcp -s $ip_Of_Other_Server --dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -d $ip_Of_Other_Server --sport 3306 -j ACCEPT
問題は、両方のサーバーを実行していて、drupal の自分のアカウントを使用してログインしようとすると、drupal ログにログイン試行の成功が記録されているにもかかわらず、ログインできないことです。サーバーを 1 つだけ実行すると、正常にログインできます。iptables ルールですべてを許可すると、正常に動作します。レプリケーションが正しく機能するには、iptables を使用して開く必要があるポートがいくつかあると思いますが、どのポートを開くべきかわかりません。
答え1
送信接続を開くだけで済みました:
iptables -A OUTPUT -p tcp -d $ip_Of_Other_Server --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -s $ip_Of_Other_Server --sport 3306 -j ACCEPT