HaProxy安装配置入门学习
HaProxy安装配置入门学习
简介
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
安装
安装介质
从HaProxy官方网站下载最稳定的发布版本(1.4.25)源码包;使用源码包的好处是可以在不同的Linux环境上进行编译安装。
haproxy-1.4.25.tar.gz
环境准备
HaProxy支持大多数的Linux OS, 我选择开源的操作系统Ubuntu Server 14.04(64Bites),当然选择SUSE或RadHat也没有问题。如果没有Linux环境,可以安装虚拟软件(如VMWare)创建虚拟机并安装操作系统,由于Ubuntu比较小巧,占用资源较少,比较适合在本机虚拟化环境中运行。当然,现在的PC配置较高一般的Linux OS可以安装几台都不成问题。
查看源码包下面的README文件,可以知道HAProxy所支持的OS:
- linux22 for Linux 2.2
- linux24 for Linux 2.4 and above (default)
- linux24e for Linux 2.4 with support for a working epoll (> 0.21)
- linux26 for Linux 2.6 and above
- linux2628 for Linux 2.6.28 and above (enables splice and tproxy)
- solaris for Solaris 8 or 10 (others untested)
- freebsd for FreeBSD 5 to 8.0 (others untested)
- osx for Mac OS/X
- openbsd for OpenBSD 3.1 to 5.2 (others untested)
- aix52 for AIX 5.2
- cygwin for Cygwin
- generic for any other OS.
- custom to manually adjust every setting
安装过程
(1) 解压安装包
如果你的本地环境是Linux,那就直接解压安装包;或者使用的是虚拟机,则把安装包上传至虚拟机(可以使用Xftp软件或Linux scp命令);如果虚拟机可以连接Internet,也可以在虚拟机里直接下载HaProxy源码安装包;把准备好的源码安装包解压缩;
(2) 源码包目录结构
CHANGELOG : 版本变更信息,记录新增更能、BUG修改等信息
doc : 文档
example : 配置示例
tests : 测试用例(配置文件)
include : 依赖类库
ebtree : 类库
src : 源代码(c)
(3) 编译源码
与一般编译安装源码程序不同,HaProxy安装不需要执行configure操作,在其安装包根目录下可以发现不存在configure脚本;执行make命令编译源码;
make TARGET=linux26 PREFIX=/opt/programs/haproxy-1.4.25
PREFIX指定安装程序的根目录,如果不指定则安装到系统默认目录下,编译结束根目录下多了一个可执行的文件:haproxy,就是核心程序,执行该命令可以启动HaProxy进程(当然要先准备好配置文件)。
(4) 安装
执行make install安装编译产物。
查看安装结果:
配置
HAProxy源码安装包中带有配置示例和技术文档,可以参考学习。以下举例配置最常用的两种代理HTTP和TCP。
HTTP
环境准备
Apache-tomcat |
192.168.226.128:8080 |
Apache-tomcat |
192.168.226.129:8080 |
配置文件
global
daemon
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
listen http-in
bind *:80
server server1 192.168.226.128:8080 maxconn 32
server server2 192.168.226.129:8080 maxconn 32
测试
先做一个简单的配置并测试。新建haproxy配置文件${haproxy.home}/conf/haproxy.cfg,输入上述配置内容后保存(配置文件可以任意命名,只要启动时指定配置文件路径即可 [-f ${cfgFilePath}])。执行${haproxy.home}/sbin/haproxy –f ${haproxy.home}/conf/haproxy.cfg启动haproxy进程。如果不知道命令参数,可以输入-h查看帮助信息。
执行${haproxy.home}/sbin/haproxy -f ${haproxy.home}/conf/haproxy.cfg启动haproxy进程;
--------------------------------------分割线 --------------------------------------
Haproxy+Keepalived搭建Weblogic高可用负载均衡集群
Keepalived+HAProxy配置高可用负载均衡
CentOS 6.3下Haproxy+Keepalived+Apache配置笔记
Haproxy + KeepAlived 实现WEB群集 on CentOS 6
Haproxy+Keepalived构建高可用负载均衡
使用 HAProxy 配置 HTTP 负载均衡器
--------------------------------------分割线 --------------------------------------
编写一个JSP文件放入tomcat自带的example应用中(每个server里都放置一份),查看每次访问的server信息(可以在每个tomcat启动参数中加入不同的值-D${key}=${value},方便测试),JSP文件内容如下:
<%@pageimport="java.util.Properties"%>
<%@pageimport="java.net.InetAddress"%>
<%@pagelanguage="java"contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
InetAddress address = InetAddress.getLocalHost();
String hostAddress = address.getHostAddress();
String hostName = address.getHostName();
Properties props = System.getProperties();
%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
<title>Test HAProxy HTTP mode</title>
</head>
<body>
<spanstyle="color: blue;">ZhongWen.Li (lizw@primeton.com)</span>
<tablewidth="100%"border="0.1">
<thead>
<tr>
<thcolspan="2"align="center">Server information</th>
</tr>
</thead>
<tbody>
<tr>
<td>SERVER ADDRESS</td>
<td><%=hostAddress %></td>
</tr>
<tr>
<td>SERVER NAME</td>
<tdstyle="color: red;"><%=hostName %></td>
</tr>
<tr>
<td>Session ID</td>
<td><%=session.getId() %></td>
</tr>
<tr>
<tdcolspan="2"align="center">System information</td>
</tr>
<%for (Object key : props.keySet()) { %>
<tr>
<td><%=key %></td>
<td><%=props.get(key) %></td>
</tr>
<% } %>
</tbody>
</table>
</body>
</html>
直接访问应用容器1
直接访问应用容器2
更多详情见请继续阅读下一页的精彩内容:
|
评论暂时关闭