我知道HTML 500错误是什么,我知道如何研究解决它们,
我使用apache 2运行服务器,管理控制是通过cPanel和WHM。
我正在寻找的是关于如何在我的网站上发生有用且信息丰富的HTML 500错误页面后向最终用户反馈的一些指导。
我看过:PHP: 500 Error to error page 和https://ux.stackexchange.com/questions/15955/how-to-create-a-useful-500-internal-server-error-page
但这些似乎并非我所寻找的,例如http://www.smashingmagazine.com/2011/05/27/getting-started-with-defensive-web-design/(从上述链接之一引用)告诉我如何为500错误设计艺术作品页面但没有指示在发生错误时如何部署此页面。
我最常见的一点是,我确实有一些HTML 500错误,在.htaccess
文件中有错误,对于网站来说,这个网站可能只会停机几分钟,但是每个月约50万游客,这个停机时间,即使是短暂的,也会被几十个人看到,真的应该呈现得很好,很好,信息丰富,而不是现在的标准:
服务器遇到内部错误或配置错误,无法完成您的请求。
此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。
我有一个服务器错误页面,其中有500个错误已在我的服务器管理员(cPanel)中设置和创建并加载,但错误页面示例(上图)声称无法找到它,我在errorDocument
中也有一个.htaccess
句柄,指向同一页面。
所以我的问题是:
当我收到这些错误时,我需要设置哪些流程才能部署一致且信息丰富的错误500页?
特别是当我遇到.htaccess
错误时
我有一种感觉,由于错误(服务器)的性质,这意味着错误页面无法在发生错误时从同一服务器部署,因此服务器无法异步工作?
答案 0 :(得分:3)
我感觉由于错误(服务器)的性质,这意味着错误页面无法从错误发生的同一服务器部署,因此服务器无法异步工作?
- 以上是否意味着HTML 500错误只能从多服务器情况或CDN真正部署?
我说他们只能从多服务器配置可靠部署。
数学很简单:
错误页面本身就是对服务器的请求
如果服务器由于配置错误或代码错误而无法完成请求,则无法保证错误页面不会发生相同的情况。
但最终,这取决于你的配置
例如,如果您在某个子文件夹中的.htaccess文件中出错,导致无限递归,则错误页面将加载正常,只要它不是从该目录提供的。
但是,如果您在所有网址上导致无限重定向,那么对错误文档的请求也会受到影响,这正是服务器告诉您的情况:
此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。
这就像报告错误报告错误一样 - 根据其严重程度,这可能会也可能不会。
如果有另一台服务器具有单独的配置,它将不会受到服务器1故障的影响。
它不需要是一个物理服务器,只需启动第二个Web服务器就可以了。
对于apache,使用mod_proxy_balancer
,这样的配置可能看起来像
Host
此服务器需要在端口80上启动,并将所有传入请求传递到端口42(因此其他服务器需要侦听端口42,最好仅在127.0.0.1上)。如果在端口42上运行的服务器返回的任何响应的状态代码为500,则端口80上的服务器将在127.0.0.1上将请求重新发送到端口80,从而将请求传递给自身,但使用不同的{{1}}标题,以便它不会再次点击负载均衡器。