环境拓扑图

image


环境准备:
Centos6.5x86_64 关闭防火墙和Selinux
node1:HAProxy
   VIP:eth1:192.168.1.19/24
   eth2:192.168.19.1/24

node2:static-server (eth0: 192.168.19.2/24     网关:192.168.19.1)
node3:dynamic-server(eth0: 192.168.19.3/24 网关:192.168.19.1)


一、安装并配置Haproxy服务器

 
   
node1 # ifconfig eth1 192.168.1.19/24 up # route add default gw 192.168.1.1 # ifconfig eth2 192.168.19.1/24 up # yum install -y haproxy

 
   
# cat /etc/haproxy/haproxy.cfg global # 全局配置参数 log 127.0 . 0.1 local2 # 定义日志 chroot / var / lib / haproxy # 安全模式 pidfile / var / run / haproxy.pid # pid文件 maxconn 4000 # 最大连接数 user haproxy # 用户 group haproxy # daemon # turn on stats unix socket stats socket / var / lib / haproxy / stats defaults # 配置默认参数的,这些参数可以被利用配置到frontend,backend,listen组件 mode http # 默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK(注,health已经废弃) log global # 采用全局定义的日志 option httplog # 日志类别http日志格式 option dontlognull # 不记录健康检查的日志信息 option http - server - close # 每次请求完毕后主动关闭http通道 option forwardfor except 127.0 . 0.0 / 8 # 不记录本机转发的日志 option redispatch # serverId对应的服务器挂掉后,强制定向到其他健康的服务器 retries 3 # 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 30000 # 最大连接数 listen stats # listen是Frontend和Backend的组合体。这里定义的是haproxy状态页面监控! mode http # 模式http bind 0.0 . 0.0 : 8080 # 绑定的监控ip与端口 stats enable # 启用监控 stats hide - version # 隐藏haproxy版本 stats uri / haproxyadmin ? stats # 定义的uri stats realm Haproxy\ Statistics # 定义显示文字 stats auth admin:admin # 认证 stats admin if TRUE frontend http - in # 接收请求的前端虚拟节点,Frontend可以根据规则直接指定具体使用后端的 backend(可动态选择)。这里定义的是http服务! bind * : 80 # 绑定的监控ip与端口 mode http # 模式http log global # 定义日志 option httpclose # 每次请求完毕后主动关闭http通道 option logasap # option dontlognull # #不记录健康检查的日志信息 capture request header Host len 20 capture request header Referer len 60 # 定义访问控制,表示以url以.css .js .html .php结尾的分别调度到哪台服务器上访问 acl url_static path_beg - i / static / images / javascript / stylesheets acl url_static path_end - i .jpg .jpeg .gif .png .css .js .html use_backend static_servers if url_static default_backend dynamic_servers # 定义的默认backend backend static_servers # 后端web服务集群的配置 balance roundrobin # 使用轮询的调度方式,在有多台服务器的情况下 server node2 192.168 . 19.2 : 80 check backend dynamic_servers # 动态服务器的配置 cookie srv insert nocache # 插入cookie,使其可以访问到后端的同一台动态服务器,防止登录信息丢失 balance roundrobin server node3 192.168 . 19.3 : 80 check cookie node3

二、WEB服务器简单配置

node2

 
   
# ifconfig eth0 192.168.19.2/24 up # route add default gw 192.168.19.1 # 网关指向haproxy主机的eth1地址 # ping 192.168.19.1 # ping一下haproxy的节点看是否ping通 # yum install -y httpd # vim /var/www/html/index.html <h1 > node2.luo.com< / h1 > # service httpd start # curl http://192.168.19.2 <h1 > node2.luo.com< / h1 >


node3

 
   
node3 # ifconfig eth0 192.168.19.3/24 up node3 # route add default gw 192.168.19.1 # 网关指向haproxy主机的eth1地址 node3 # ping 192.168.19.1 # ping一下haproxy的节点看是否ping通 node3 # yum install -y httpd php elinks node3 # vim /var/www/html/index.php <h1 > node3.luo.com< / h1 > < ? php phpinfo(); ?> node3 # service httpd start # 配置好之后就把web服务启动起来,再访问测试一下 [node3] # elinks http://192.168.19.3 # 使用文本浏览器elinks测试

测试:
 imageimage

image

访问动态网页:

image

配置文件中设置默认为动态的 
 image

访问静态网页:

image

至此,布署完成。如有错误,请多多指教