我们最近将我们的网站迁移到了清漆后面的负载均衡的apache集群。 从那时起,一小部分用户报告他们不能查看任何页面。 我已经把这个问题缩小了很多。 这个问题在搬迁前并没有出现,旧的基础设施是一个大箱子。
我们在Rackspace Cloud上运行8个使用Rackspace Cloud负载平衡器(Zeus)负载平衡的varnish 3.0后面的apache2实例,以及总共10台服务器(全部为linux)的2个mysql实例。
用户可以查看静态html文件。 用户可以查看静态资产,如图像。 用户不能查看任何php文件,即使是只包含phpinfo()的简单文件。 当负载平衡器被取出图片时,用户不能查看任何php文件。
apache日志显示没有任何的注意,除了在访问日志。 PHP的错误报告被设置为日志,而不是显示,虽然我把它设置为短时间显示,并且用户仍然没有错误的空白页面。 Apache / Varnish / PHP错误日志显示没有任何说明。
服务器是:
一些configuration的快照:
我可以提供任何/所有需要进一步debugging的日志,但没有任何关于这个问题的用户注意到,从Apache的典型访问,从PHP没有错误。
我有一种感觉,它可能会涉及到PHP会话存储,虽然我不能确认这一点。
任何深入了解这个问题,非常感谢。 只是重申最后一次,这个问题只影响到一小部分用户。 这个问题已经有5-10人与我们联系过,但是我认为这个数字比那些没有反映过这个问题的人的数量还要多。 这些联系我们的5-10个用户遍布各大洲/国家/地区。
也许这会帮助你:你保持活着吗?
我们在使用mpm-itk的清漆方面遇到了同样的问题,问题是,当mpm-itk被不同的虚拟主机访问时,实际上保持活动状态,他只是终止了连接。 然后,每个普通的浏览器将尝试重新连接,但清漆不在默认configuration中。 随着删除KeepAlive这种行为不可能发生,所以它解决了这个问题。
我知道你没有使用mpm-itk,但也许值得一试。
另一个想法:你可以访问该网站绕过清漆,并试图强制空白页? 所以你可能会发现如果清漆是问题。
事实certificate,由于权限问题,PHP无法login到指定的日志文件,并且显示的错误被禁用。
因此,PHP错误没有显示,或能够被logging – 但空白页面的根本原因是由于一个奇怪的PHP致命错误。