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