HAproxy动静分离
一:HAproxyHAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。
HAProxy特别 适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的 运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。
HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制、系统调度器限制以及无处不在的锁限 制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。-----百度百科
二:实现HAproxy动静分离
1)试验拓扑图
2)试验环境准备
S1与S2跟HAproxy服务器在一个网段内,选择vment3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
1)修改S1
# ifconfig eth1 192.168.16.1/24 up # 给eth1配置ip地址
# ifconfigeth0 Link encap:EthernetHWaddr 00:0C:29:B2:AD:BA
inet addr:172.16.16.2 Bcast:172.16.255.255Mask:255.255.0.0
inet6 addr: fe80::20c:29ff:feb2:adba/64 Scope:Link
UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
RX packets:11122303 errors:0 dropped:0 overruns:0 frame:0
TX packets:1193136 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:697850934 (665.5 MiB)TX bytes:74549101 (71.0 MiB)eth1 Link encap:EthernetHWaddr 00:0C:29:B2:AD:C4
inet addr:192.168.1.1Bcast:192.168.27.255Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb2:adc4/64 Scope:Link
UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b)TX bytes:468 (468.0 b)
2)修改S2
# ifconfig eth0 192.168.1.2/24 up在s1设置好相关配置,选择虚拟机上的VMnet3与haproxy上的eth1的同一通信通道,再配置IP地址和默认网关接口,而后再提供不同的页面以便测试用;
# route add defaulte gw 192.168.27.18# 网关指向haproxy主机的eth1地址
# ping 192.168.27.10# ping一下haproxy的节点看是否ping通
# vim /var/www/html/index.html
# service httpd start # 配置好之后就把web服务启动起来,再访问测试一下,测试的连接改为桥接方式
# ifconfig eth0 192.168.1.16/24 up
# route add defaulte gw 192.168.27.18# 网关指向haproxy主机的eth1地址
# ping 192.168.27.10# ping一下haproxy的节点看是否ping通
# vim /var/www/html/index.php
hello word
phpinfo();
?>
# service httpd start # 配置好之后就把web服务启动起来,再访问测试一下,测试的连接改为桥接方式
3)修改haproxy配置文件
# vim haproxy.cfg
frontend main
bind :80
# default_backend webservers
acl url_static path_end -i .css .js .html
acl url_dynamic path_end -i .php
use_backend static if url_static
default_backend dynamic
backend static
# balance roundrobin
# cookie webservers insert nocache
server s1 192.168.1.2:80 check inter 3000 rise 2 fall 2 maxconn 5000
backend dynamic
server s2 192.168.1.16:80 check inter 3000 rise 2 fall 2 maxconn 5000
listen statspage
bind *:8888
stats enable
stats hide-version
stats uri /admin?stats
stats auth llh:mageedu
stats admin if TRUE
三:启动HAproxy进行测试
1) service haproxy start
2)登录我们的配置页面
3)测试动静网页是否分离
访问静态网页
看静态网页为我们设置的www.helloword.com
4)访问动态网页
看动态网页为我们设置的hello Word 服务器
OK 我们的动静分离已经实现了.
页:
[1]