HAproxy作为httpd反向代理的应用
实验前提:
1、本次实验是在RHEL 6.4(64bit)系统上完成的。
2、实验前确保每台服务器同步
3、本次实验有3台主机,其中haproxy作为反向代理地址为192.168.108.232,后面2台的httpd服务器为192.168.108.230和192.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
后端的2个httpd服务配置完成之后最后测试一下,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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。