Haproxy实现负载均衡—动静分离
1、动态资源和静态资源
- 静态资源:可以理解为前端的固定页面,这里面包含HTML、CSS、JS、图片等等,不需要查数据库也不需要程序处理,直接就能够显示的页面,如果想修改内容则必须修改页面,但是访问效率相当高。
- 动态资源:需要程序处理或者从数据库中读数据,能够根据不同的条件在页面显示不同的数据,内容更新不需要修改页面但是访问速度不及静态页面。
2、在Haproxy上实现动态资源和静态资源的分离
- 步骤一:在haproxy端配置动静分离策略
vim /etc/haproxy/haproxy.cfg
写入的这部分内容表示:如果匹配到/
images或者以 .jpg .gif .png
结尾的请求,则为静态,连接到server3;否则为动态,连接到server1或server2
- 步骤二:在server1中安装httpd
yum install -y httpd
cd /var/www/html/
vim index.html
vim /etc/httpd/conf/httpd.conf #修改端口为8000,因为server1上的80端口已经被haproxy占据
systemctl start httpd
systemctl restart haproxy #重新启动haproxy
- 步骤三:进行动态测试
把server1做为backup
vim /etc/haproxy/haproxy.cfg
systemctl restart haproxy
再次进行测试
关闭server2的httpd
systemctl stop httpd
- 步骤四:进行静态测试
cd /var/www/html/
mkdir images #在目录中放一张图片
进行测试:
访问192.168.01.1/images可以看到该图片,而server1中并没有图片资源,haproxy知道我们要访问的是静态资源,所以帮我们定位到了server3上
注意:访问静态资源时,代理服务器上并没有资源,资源存放在后端服务器上