环境拓扑图
环境准备:
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测试
访问动态网页:
访问静态网页:
至此,布署完成。如有错误,请多多指教
转载于:https://blog.51cto.com/luoshixin/1557159