Итак ... Интересная проблема для вас, ребята, потому что я совершенно не понимаю, что делать и где делать следующий шаг.
Серверная и прикладная среда.
Релиз CentOS 5.3 (окончательный)
Apache 2.2.3-22
EnableSendfile off
EnableMMAP off
ErrorLog logs/error_log
LogLevel debug
PHP-5.2.6-2
error_reporting = E_ALL
display_errors = on
log_errors = on
max_execution_time=300
max_input_time=60
memory_limit=512mb
Kohana 2.3 PHP Environment.
HAProxy 1.3.15.6-2
MemCacheD 1.2.6-1
Наше приложение разделено между 3 веб-серверами, установкой сервера хранения NFS и устойчивой балансировкой нагрузки между 3 веб-серверами. Казалось бы, приложение отлично работает, но время от времени вместо загрузки приложение показывает просто белую страницу. Не ошибка 404 или ошибка сервера 500, чистая белая страница. И он возвращается мгновенно, поэтому это не ошибка времени выполнения.
Ничего в журнале ошибок, журнале ошибок сервера, журнале прокси-сервера не показывает стандартное прокси-соединение, только стандартный 200-статус в журнале доступа с переданными 256 байтами.
На мой взгляд, это приводит к тому, что проблема возникает в самом приложении. Редкая, необъяснимая, на первый взгляд случайная проблема, вызывающая то, что мы теперь называем «белым экраном смерти».
Все наши разработчики говорят, что, поскольку в наши журналы ошибок ничего не записывается, это, должно быть, проблема сервера. Но я говорю то же самое: Ничего не происходит в ЛЮБОМ из наших журналов (в любом случае, имеющем отношение к этому), и у нас не происходит сбоев httpd children, насколько я могу судить.
Есть идеи, как я могу увеличить свои журналы или как-то доказать, что это не ошибка в PHP, Apache, CentOS и т. Д.? Или, если это какая-то ошибка, определить ее?
Telnet к серверу, чтобы узнать, что происходит
telnet server.wesome 80
GET / HTTP / 1.0
Я бы попытался настроить сниффер пакетов на всех точках сетевого пути данных или, по крайней мере, между клиентом и сервером. Затем вы можете проверить пакеты в момент возникновения ошибки и, по крайней мере, изолировать проблему до одной из машин в цепочке. По крайней мере, тогда будет более ясно, на чем вы должны сосредоточить свое расследование.
Оказывается (для справки) мы обнаружили ошибку (я не знаю подробностей, я не разработчик) в Kohana 2.3 с их системой кэширования файлов. После обновления до 2.3.4 и использования memcached исключительно для кеширования проблема исчезла.