HAproxy作为httpd反向代理的应用

实验前提:

1、本次实验是在RHEL 6.4(64bit)系统上完成的。

2、实验前确保每台服务器同步

3、本次实验有3台主机,其中haproxy作为反向代理地址为192.168.108.232,后面2台的httpd服务器为192.168.108.230192.168.108.231.(我这里在虚拟机上使用的是桥接的方式,也可以使用仅主机方式,不过使用仅主机方式haproxy上需要2快网卡)

4、测试时请关闭防火墙和selinux

 

实验拓扑结构:

 

技术分享

 

 

 

安装步骤:

1、配置web1

首先需要安装httpd服务(需要事先配置好yum)

# yum -y install  httpd

 

然后修改httpd的根目录下的index.html文件,修改内容如下:

# echo  “I am a web1,my ip is  192.168.108.230”  >  /var/www/html/index.html

 

启动httpd服务

# service httpd start

 

2、配置web2

安装httpd服务

# yum -y install  httpd

 

然后修改httpd的根目录下的index.html文件,修改内容如下:

# echo  “I am a web1,my ip is  192.168.108.231”  >  /var/www/html/index.html

 

启动httpd服务

# service httpd start

 

 

后端的2httpd服务配置完成之后最后测试一下,httpd是否可以正常工作。如果可以,则继续下面的步骤。

 

 

3、配置haproxy

RHEL 6.4上面有自带的RPM包,因此在这里我们直接使用RPM包的方式进行安装。

# yum -y install haproxy

 

配置完成之后,然后在编辑其配置文件为如下内容:

# vim /etc/haproxy/haproxy.cfg

global

    log         127.0.0.1 local2

    chroot      /var/lib/haproxy

    pidfile     /var/run/haproxy.pid

    maxconn     4000

    user        haproxy

    group       haproxy

    daemon

    # turn on stats unix socket

    stats socket /var/lib/haproxy/stats

 

defaults

    mode                    http

    log                     global

    option                  httplog

    option                  dontlognull

    option http-server-close

    option forwardfor       except 127.0.0.0/8

    option                  redispatch

    retries                 3

    timeout http-request    10s

    timeout queue           1m

    timeout connect         10s

    timeout client          1m

    timeout server          1m

    timeout http-keep-alive 10s

    timeout check           10s

    maxconn                 3000

 

 

frontend  http-in

    bind *:80

    mode http

    log global

    option httpclose

    option logasap

    capture  request header Host len 20

    capture  request header referer  len 60

    default_backend             webserver

 

 

backend webserver

    balance     roundrobin 采用加权轮调算法

    server      web1 192.168.108.230:80  check inter 1000 rise 1 fall 2  maxconn 2000

    server      web2 192.168.108.231:80  check inter 1000 rise 1 fall 2  maxconn 2000

 

 

 

 

4、测试

访问http://192.168.108.233,显示结果为:

技术分享

 

然后在刷新该页面,显示结果为:

技术分享

 

由于采用的是加权轮调算法,因此,每个用户请求都会均匀的分发给后端的服务器。

 

5、启用统计报告功能,使用web界面来管理其haproxy的状态连接等信息

需要在其配置文件中添加如下信息:

listen stats

        mode http

        bind *:8080

        stats enable

        stats  hide-version

        stats uri /haproxyadmin?stats

        stats realm  "hello\ proxy"

        stats auth  xsl:xsl

        stats admin if TRUE表示只有认证通过后才可以管理其统计信息

 

创建认证用户和密码

# useradd  xsl

# passwd  xsl    (密码也为xsl

 

然后在重启haproxy服务

# service haproxy restart

 

测试,在浏览器中输入:http://192.168.108.232:8080/haproxyadmin?stats

显示结果为:

技术分享

 

将用户名xsl和密码xsl输入进去之后,显示结果为:

技术分享

 

这个界面里面包含了各种haproxy的状态、连接等信息

 

本文出自 “linux学习之路” 博客,请务必保留此出处http://xslwahaha.blog.51cto.com/4738972/1629710

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。