У меня есть два сервера с php5-fpm и балансировщик нагрузки с nginx, три сервера используют / var / www / drupal с помощью nfs. nfs работает правильно. Я реплицировал базу данных двух серверов, используя главную репликацию mysql. все работало нормально, пока я не добавил свои правила iptables. В моем скрипте iptables я сначала отбрасываю все цепочки, затем принимаю те, которые мне нужны, кроме того, что нет других операторов drop. Я открыл порт 3306 для репликации mysql следующим образом: (правило действует на обоих серверах)
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. Когда я запускаю только один из них, я могу войти в систему как обычно. когда я разрешаю все в моих правилах iptables, он работает нормально. Я считаю, что мне нужно открыть какой-то порт с помощью iptables, чтобы репликация работала правильно, но я не могу найти, какой из них открыть.
Мне просто нужно было открыть исходящие соединения:
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