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

PHP показывает пустые страницы <1% пользователей

Недавно мы переместили наш сайт на кластер Apache с балансировкой нагрузки за varnish. С тех пор очень небольшая группа пользователей сообщает, что не может просматривать какие-либо страницы. Я немного сузил проблему. До переезда этой проблемы не было, старая инфраструктура представляла собой одну большую коробку.

Мы находимся в Rackspace Cloud, на котором запущено 8 экземпляров apache2 за varnish 3.0, с балансировкой нагрузки с использованием балансировщиков нагрузки Rackspace Cloud (Zeus) и 2 экземпляра mysql для всего 10 серверов, все Linux.

Пользователь может просматривать статический файл HTML. Пользователь может просматривать статический актив, например изображение. Пользователь не может просматривать какой-либо файл php, даже простой, который включает только phpinfo (); Пользователь не может просматривать какой-либо файл php, когда балансировщик нагрузки убран с изображения.

Журналы apache не содержат ничего примечательного, кроме журналов доступа. Отчет об ошибках PHP настроен на журнал, а не на отображение, хотя я настроил его на отображение в течение короткого времени, и пользователь по-прежнему получает пустую страницу без ошибок. Журналы ошибок Apache / Varnish / PHP не содержат ничего примечательного.

Серверы бывают:

Снимки некоторых конфигураций:

Я могу предоставить любые / все журналы, необходимые для дальнейшей отладки, но в них нет ничего примечательного для пользователей, имеющих эту проблему, типичный доступ из apache, отсутствие ошибок из php.

У меня есть ощущение, что это может быть связано с хранилищем сеансов php, хотя я не могу это подтвердить.

Мы очень ценим любое понимание проблемы. Повторюсь еще раз: эта проблема затрагивает очень небольшую группу пользователей. 5–10 связались с нами по поводу проблемы, но я полагаю, что их больше, чем людей, которые не удосужились сообщить о проблеме. Эти 5-10 пользователей, которые связались с нами, находятся на разных континентах, в странах, в регионах.

Может быть, это вам поможет: у вас есть KeepAlive, чтобы установить?

У нас была та же проблема в varnish с mpm-itk, проблема заключалась в том, что когда доступ к mpm-itk осуществлялся с другого виртуального хоста, тогда как сеанс проверки активности actall был, он просто отключал соединение. Каждый нормальный браузер затем попытается повторно подключиться, но varnish не работает в конфигурации по умолчанию. При удалении KeepAlive такого поведения не могло произойти, поэтому проблема была решена.

Я знаю, что вы не используете mpm-itk, но, возможно, стоит попробовать.

Еще одна идея: можно ли получить доступ к сайту в обход лака и попытаться принудительно открыть пустую страницу? Так что, возможно, вы узнаете, не проблема в лаке.

Оказалось, что это проблема, из-за которой PHP не смог войти в указанный файл журнала из-за проблем с разрешениями, а отображение ошибок было отключено.

Таким образом, ошибка PHP не отображалась и не могла быть записана в журнал, но основная причина пустых страниц была в странной фатальной ошибке PHP.