Поддерживает ли apache2 синхронизированный журнал для access_log и error_log? Как журнал в apache2 работает для нескольких экземпляров? Будет ли он заблокирован, если несколько экземпляров будут писать одновременно?
Заранее спасибо.
Does apache2 support synchronized log for access_log and error_log?
Нет. Как указывали другие, не существует блокировки или механизма, обеспечивающего синхронизацию записи записей с любыми двумя файлами журнала apache. События ЯВЛЯЮТСЯ однако с отметкой времени (чтобы вы могли сопоставить событие error_log с событием access_log, которое его инициировало), и существуют инструменты для объединения журналов, если это то, что вы хотите сделать.
How the log in apache2 works for multiple instances?
Увидеть Раздел руководства Apache по ведению журналаособенно подраздел о виртуальных хостах.
Обычно ответ такой: «Он работает, но вы его настраиваете в пределах, описанных в руководстве». Совет MrTuttle (используйте отдельный журнал для каждого сайта и, конечно, отдельные журналы для отдельных экземпляров httpd!) - очень хороший совет - я предлагаю следовать ему ...
Will it get to lock condition if multiple instances write at the same time?
Нет (см. Выше), однако вы может испытывать некоторые события, записанные в неправильном порядке в файл журнала под крайний нагрузка. (Я видел это ОДИН РАЗ, и сайт использовал конвейерные журналы, поэтому возможно, что программа, которая обрабатывала журналы, просто потеряла рассудок ...)
Проще говоря, нет, сам Apache не блокирует файлы - по крайней мере, это сказывается на производительности и ресурсах. В лучшем случае это потенциальный тупик, ожидающий своего часа. Поскольку при обычной настройке могут быть сотни потоков, соперничающих за блокировку, вы увидите, как часто происходит голод.
Более сложный ответ: вы, безусловно, можете попробовать реализовать это самостоятельно. То есть вы можете использовать что-то вроде трубные бревна чтобы передать им промежуточный сценарий, выполняющий блокировку.
Правильный ответ: зачем вам помещать их в один файл? Если они размещают одни и те же данные, то они должны быть одним и тем же сервером - разделение его на двух отдельных наблюдателей (например, httpd, принадлежащего root) и несколько дочерних элементов для каждого (например, httpd, принадлежащий apache) вам ничего не купит ; во всяком случае, дополнительные ресурсы, необходимые для запуска ресурсов, снизят производительность. И если они НЕ размещают один и тот же контент, они не должен записывать вещи в один и тот же журнал.
Если вам абсолютно необходимо объединить контент, есть много вещей, которые можно объединить содержимое двух файлов журнала Apache.
Надеюсь это поможет!
Нет, вы не получите условие блокировки. Журналы Apache не открываются с эксклюзивной блокировкой (я не знаю, верно ли это для Windows).
Тем не менее, используйте отдельные журналы для вашего собственного здравомыслия.
Несколько процессов apache из одного и того же экземпляра могут записывать в одни и те же файлы журнала без каких-либо проблем, потому что фундаментальный API ввода-вывода гарантирует, что это безопасно (не потеряет данные или не чередуется), когда дескриптор файла используется совместно N процессами или потоками.