Назад | Перейти на главную страницу

Белый экран, без ошибок

Итак ... Интересная проблема для вас, ребята, потому что я совершенно не понимаю, что делать и где делать следующий шаг.

Серверная и прикладная среда.

Релиз 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 исключительно для кеширования проблема исчезла.