Итак, в настоящее время я перестраиваю свою веб-платформу с одной машины на кластер машин, и для этого я буду использовать балансировку нагрузки Apache, но у меня есть два вопроса, на которые мне нужен хороший ответ, прежде чем продолжить. Я погуглил и искал здесь, в SO, но не нашел ничего хорошего.
Моя установка будет состоять из одной машины Debian, на которой запущен сервер балансировки нагрузки Apache (т. е. Apache с mod_proxy), а затем любое количество «подчиненных» машин, которые являются членами балансировки. Все это VPS внутри машины VMWare, поэтому установка новых ведомых устройств по мере необходимости будет тривиальной.
Файлы журналов Первый вопрос касается файлов журналов. Чтобы устранить неполадки на моей платформе, мне иногда нужно анализировать файлы журналов, как журналы доступа, так и журналы ошибок, из Apache. Когда нагрузка распределена равномерно (т. е. я не знаю, буду ли я вообще использовать липкую балансировку, любой хост, вероятно, сможет обработать любой запрос в любое время), то же самое можно сказать и о файлах журнала для каждого подчиненного экземпляра Apache. Есть ли способ объединить эти живые, чтобы мой анализатор логов в реальном времени мог видеть файлы журналов со всех хостов? Я, конечно, понимаю, что сделать это, когда файлы находятся на нескольких хостах, будет сложно, поэтому есть ли способ убедиться, что все файлы журналов хранятся на одном сервере?
Я сам думаю о двух вещах, но я был бы очень признателен за ваш вклад.
syslogd Во-первых, это syslogd, в котором несколько хостов могут писать на один хост ведения журнала. Проблема в том, что в моей текущей настройке каждый виртуальный хост в apache имеет свой собственный файл журнала. Хотя, наверное, это можно как-то исправить. Я в основном использую это для устранения неполадок, а не для ведения отдельных журналов для каждого хоста (хотя, если бы обе цели могли быть достигнуты, это, безусловно, было бы бонусом).
NFS Моя следующая мысль была о NFS, т. е. о наличии общего ресурса NFS в локальной сети, где каждое ведомое устройство может записывать в один и тот же файл журнала. Я собираюсь пойти дальше и предположить, что это будет сложно, поскольку ведомое устройство 1 откроет файл журнала, а затем ведомое устройство 2 не сможет в него записать.
Как я уже сказал, ваш вклад очень ценен, так как я чувствую, что застрял в том, как решить эту проблему.
Файлы конфигурации Это совсем другое. Каждое ведомое устройство будет отвечать на каждый запрос, как если бы оно действовало как один единственный сервер. В этом вся идея. А как насчет внесения изменений в конфигурационные файлы апача, добавления виртуальных хостов, настройки других параметров? Что, если у меня будет десять рабов или пятьдесят? Есть ли способ убедиться, что все эти подчиненные устройства всегда синхронизированы? Я уже использую экспорт NFS, чтобы убедиться, что все они имеют одинаковые файлы, но должен ли я использовать тот же подход с файлами конфигурации? Или я должен использовать их как репозиторий, а затем использовать rsync, чтобы скопировать их на ведомые устройства? Одна проблема заключается в том, что я создал интерфейс в своей веб-платформе, который редактирует эти файлы конфигурации (а именно файл с виртуальными хостами), и, поскольку это действие будет происходить на одном из подчиненных устройств, самая последняя копия этого файла потенциально может быть на одном раб.
Я понимаю, что это был длинный и громоздкий пост, и прошу прощения. Я просто хотел убедиться, что все параметры моей проблемы были выражены.
Я надеюсь, что кто-то там может помочь мне, как и вы раньше! Заранее спасибо!