Белый экран, без ошибок
Итак... Интересная проблема для вас, ребята, так как я совершенно заблудился относительно того, что делать или где делать следующий шаг.
Серверная и прикладная среда.
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.
HAProxy 1.3.15.6-2
MemCacheD 1.2.6-1
Наше приложение разделено на 3 веб-сервера, монтирует сервер хранения NFS и обеспечивает равномерную балансировку нагрузки между 3 веб-серверами. Приложение, кажется, работает отлично, но часто, вместо загрузки, приложение просто показывает чисто белую страницу. Не ошибка 404 или ошибка сервера 500, чистая белая страница. И он возвращается мгновенно, так что это не ошибка времени выполнения.
Ничего в журнале ошибок или в журнале ошибок сервера. Журнал прокси-сервера не показывает стандартное соединение с прокси, просто стандартный 200-статус в журнале доступа с переданными 256 байтами.
Для меня это говорит мне о том, что само приложение имеет проблему. Редкая, необъяснимая, казалось бы, случайная проблема, вызывающая то, что мы сейчас называем "Белый экран смерти".
Все наши разработчики говорят, что поскольку в наши журналы ошибок ничего не попадает, это должно быть проблема с сервером. Но я говорю то же самое: ничего из наших журналов не поступает (в любом случае, это важно), и у нас не получается, что дети httpd вылетят из того, что я могу сказать.
Любые идеи о том, как я могу увеличить свои журналы, или как-то доказать, что это не ошибка в PHP, Apache, CentOS, ECT? Или, если это как-то ошибка, определить это?
3 ответа
Как оказалось (для справки) Мы обнаружили ошибку (я не знаю специфики, я не разработчик) в Kohana 2.3 с их системой кеширования файлов. После обновления до 2.3.4 и использования memcached исключительно для кеширования проблема исчезла.
Telnet к серверу, чтобы увидеть, что происходит
сервер telnet. что бы 80
GET / HTTP / 1.0
Я хотел бы попытаться настроить анализатор пакетов во всех точках сетевого тракта данных или, по крайней мере, между клиентом и сервером. Затем вы можете проверить пакеты во время возникновения ошибки и, по крайней мере, изолировать проблему до одной из машин в цепочке. По крайней мере, тогда станет понятнее, на чем вы должны сосредоточить свое расследование.