haproxy实现自定义错误页面的内容

现在利用haproxy实现自定义的haproxy的错误页面

我们现在实现自定义错误页面有以下的方法;

一种是自定义错误页面

haproxy.conf
defaults
    errorfile 404 /etc/haproxy/errors/404.http
    errorfile 503 /etc/haproxy/errors/503.http

还有一种方法就是错误页面的跳转:

当出现错误的时候,我们跳转到指定的链接地址

frontend web_server    bind *:80    default_backend webserver    acl badguy src 10.0.10.1    block if badguy    errorloc 403 http://baidu.com/  

这样出错的时候直接跳转到指定的URL地址。即百度页面

记录一下我这里的实现过程

应同事需求,让前端用js写了一个页面,然后放在503页面上

503.html文件内容是:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>503</title>
		<style>
			*{
			margin:0;
			padding:0;
		}
		    .article{
			   position:absolute;
			   top:50%;
				left:50%;
				transform: translate(-50%,-50%);
		    }
			.content{
				width:312px;
				height:250px;
				border:3px solid #959595;
				border-radius: 8px;
				/*margin:0 auto;*/

			}
			.content header{
				width: 312px;
				height:37px;
				border-bottom: 2px solid #959595;
			}
			.content header i{
				display: block;
				width:15px;
				height:15px;
				border-radius: 50%;
				background-color:#959595 ;
				float:left;
				margin:10px 9px;
			}
			.content header i.white{
				width:10px;
				height:10px;
				border:3px solid #959595;
				background-color: #fff;
			}
			.content header em{
				float:right;
				display: block;
				width:16px;
				height:16px;
				border:3px solid #959595;
				border-radius: 50%;
				margin:7px 17px;
				font-style: normal;
				font:22px/13px "微软雅黑";
				color:#959595;
			}
			.content .main h1 {
				height:206px;
				font:bold 100px/206px "微软雅黑";
				color:#959595;
				text-align: center;
			}
			h2{
				font:30px/110px "微软雅黑";
				color:#666666;
				margin-left: -14px;
			}

		</style>
	</head>
	<body>
	  <div class="article">
		<div class="content">
			<header>
				<div class="left">
					<i></i>
					<i></i>
					<i class="white"></i>
				</div>
				<div class="right">
					<em>×</em>
				</div>
			</header>
			<div class="main">
				<h1>503</h1>
			</div>
		</div>

	  </div>
	</body>
</html>

但是我们要用在haproxy的话,我们需要在文件头添加如下几行内容(注意了,两个之间需要有一个空行,一定不能忘了):

HTTP/1.0 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Content-Type: text/html

拼接后的文件内容为503.http(把503.html修改成503.http)

HTTP/1.0 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Content-Type: text/html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>503</title>
		<style>
			*{
			margin:0;
			padding:0;
		}
		    .article{
			   position:absolute;
			   top:50%;
				left:50%;
				transform: translate(-50%,-50%);
		    }
			.content{
				width:312px;
				height:250px;
				border:3px solid #959595;
				border-radius: 8px;
				/*margin:0 auto;*/

			}
			.content header{
				width: 312px;
				height:37px;
				border-bottom: 2px solid #959595;
			}
			.content header i{
				display: block;
				width:15px;
				height:15px;
				border-radius: 50%;
				background-color:#959595 ;
				float:left;
				margin:10px 9px;
			}
			.content header i.white{
				width:10px;
				height:10px;
				border:3px solid #959595;
				background-color: #fff;
			}
			.content header em{
				float:right;
				display: block;
				width:16px;
				height:16px;
				border:3px solid #959595;
				border-radius: 50%;
				margin:7px 17px;
				font-style: normal;
				font:22px/13px "微软雅黑";
				color:#959595;
			}
			.content .main h1 {
				height:206px;
				font:bold 100px/206px "微软雅黑";
				color:#959595;
				text-align: center;
			}
			h2{
				font:30px/110px "微软雅黑";
				color:#666666;
				margin-left: -14px;
			}

		</style>
	</head>
	<body>
	  <div class="article">
		<div class="content">
			<header>
				<div class="left">
					<i></i>
					<i></i>
					<i class="white"></i>
				</div>
				<div class="right">
					<em>×</em>
				</div>
			</header>
			<div class="main">
				<h1>503</h1>
			</div>
		</div>

	  </div>
	</body>
</html>

最后修改一下haprox.cfg的配置文件

errorfile       503 /etc/haproxy/errfile/503.http

重启一下haproxy。完成

参考文件:

http://blief.blog.51cto.com/6170059/1752669

http://qiita.com/myaaaaa_chan/items/23de67f76a70030ccde9

时间: 2024-10-25 18:00:42

haproxy实现自定义错误页面的内容的相关文章

HAProxy自定义错误页面

HAProxy自定义错误页面 HAProny自定义错误页面有两种方式,一种是由haproxy本机提供错误页面,第二种是将错误重定向到一台专用来提供错误界面的sorry server上来提供错误页面 由haproxy本机提供错误页面 haproxy还可以捕捉错误码,然后根据错误码将错误页面重定向到本机的错误页面上,由haproxy来提供错误页面 语法 errorfile errorcode /path/to/error/indexfile 示例:修改haproxyp配置文件,在default配置段

ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面

应用场景和使用目的 很多时候,我们在访问页面的时候,由于程序异常.系统崩溃会导致出现黄页.在通常的情况下,黄页对于我们来说,帮助是极大的,因为它可以帮助我们知道问题根源,甚至是哪一行代码出现了错误.但这对于用户是非常可怕的,因为用户不知道发生了什么,也无法了解黄页给出的内容.甚至,如果我们遇到一些不友好的人,他们会拿这些内容大做文章,对我们网站产生威胁. 那我们如何在程序异常.系统崩溃时,不会出现黄页,并且还可以给出一些更加友好的提示呢?甚至在我们需要的时候,可以收集这些异常信息,并加以分析,能

[转载]针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结

针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结 汪宇杰 2014-1-11 星期六 02:31 455 Reads 1 Comments 自定义错误页面和异常记录是个很古老的话题了,但依旧可以让人爆到现在.在我做了无数次试验并总结经验和原则后,写下本文,已警后人. 本文的范围和限制 本文仅仅适用于部署在IIS7或以上版本中的ASP.NET 4.0集成模式应用程序.IIS7以上的意思是Windows Server 2008以上服务器适用.我已在WS2012R2,IIS8上测过.

ASP.NET网站中设置404自定义错误页面

在用ASP.NET WebForm开发一个网站时,需要自定义404错误页面. 做法是这样的 在网站根目录下建立了一个404.html的错误页面,然后在Global.asax文件中,加入如下代码: <%@ Application Language="C#" %> <script runat="server"> void Application_Error(object sender, EventArgs e) { Response.Status

Spring Boot自定义错误页面,Whitelabel Error Page处理方式

我已经是Spring Framework框架的忠实粉丝.对于企业软件开发者来说它提供了对常见问题的通用解决方案,包括那些你在未来开发中没有意识到的问题.但是,它构建的J2EE项目变得比较臃肿,需要被一种新的解决方案替代. 我最大的抱怨就是最开始使用spring Framework构建项目十分缓慢和复杂,比如构建一个包含JPA的MVC应用.为改变这种情况,Spring Boot应运而生了. Spring Boot以一种新的微服务的方式来替代以Spring Framework构建项目的传统方式,我已

ASP.NET Core中显示自定义错误页面

在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白. 如果在 Startup.cs 的 Configure() 中加上 app.UseStatusCodePages(); ,500错误时依然是一片空白(不知为何对500错误不起作用),404错误时有所改观,页面会显示下面的文字: Status Code: 404; Not Found 如果我们想不管500还是404错误都显示友好的自定义错误页面,该如何实现呢?请看下面的分解.

.net自定义错误页面实现升级篇

问题描述: 在上一篇博文 ".net自定义错误页面实现" 中已经介绍了在.net中如何实现自定义错误页面实现(有需要者可以去上一篇博文了解),单纯按照上一篇博文那样设置,能够实现所有请求的异常自定义跳转,但是这样又会产生一个问题:当通过ajax提交请求获取接口提交请求,如果出现未处理的异常也会被重定向到自定义错误页面. 针对ajax请求或者接口请求,这样返回一个重定向页面,用户体验显然不是太友好,针对这个问题,下面简单总结一下我自己的想法和解决方案,当然不一定科学和合理,所以也希望有大

MVC4 自定义错误页面(三)

一.概述 MVC4框架自带了定义错误页,该页面位于Shared/Error,该页面能够显示系统未能捕获的异常,如何才能使用该页面: 二.使用步骤: 1.配置WebConfig文件,在System.Web节点下加上 <customErrors mode="On"  defaultRedirect="~/Shared/Error" /> 翻阅一些大神写的博客,在他们的博客中指出defaultRedirect是指向错误页面的URL,可是经过本人测试的时候,发现

翻译:ASP.NETMVC自定义错误页面真的简单吗?

如果你在设置asp.net mvc自定义错误页面时遇到问题,这并不止你一个人.惊讶之余你的做法是正确的,没有起到作用的原因是其一部分错误是由asp.net管道处理的,另一部分是由iis直接处理. 通常情况 (我期望是这种情况,在一些其他框架/服务器上) 我们只需要在一个地方配置自定义错误页就可以了,无论怎么哪儿引发的错误.就像这样︰ <customErrors mode="On"> <error code="404" path="404.