Недавно мы переместили наш сайт на кластер 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.