Haproxy使用acl规则实现动静分离
场景,需要把静态文件如:js,css、html、图片文件,视频、语音等,转到server4上去取,把php转到server2去执行,把jsp转到server3去执行。
192.168.0.5 Haproxy server1
192.168.0.197 nginx+php server2
192.168.0.198 nginx+tomcat server3
192.168.0.199 nginx(静态资源) server4
在server1上frontend的acl段上的代码
frontend www
mode http
bind 0.0.0.0:80
option httplog
option forwardfor
option httpclose
log global
acl html_web path_beg -i /static /images /img /javascript /stylesheets
acl html_web path_end -i .jpg .gif .png .css .js .html
acl html_vide hdr_beg(host) -i img. video. download. ftp. imags. videos.
acl web_php path_end -i .php
acl web_jsp path_end -i .jsp .do
use_backend html_pool if html_web or html_vide
use_backend dynamic_php if web_php
use_backend dynamic_jsp if web_jsp
default_backend default
分别把静态资源定义成为html_pool,php和jsp分别定义为dynamic_php和dynamic_jsp.现在写backend段
html段
backend html_pool
option httpchk GET /index.html
server static1 192.168.0.199:80 cookie check inter 2000 rise 2 fall 3
php段
backend dynamic_php
option httpchk GET /index.php
server php1 192.168.0.197:80 cookie check inter 2000 rise 2 fall 3
jsp段
backend dynamic_jsp
option httpchk GET /index.jsp
server tomcat1 192.168.0.198:8080 cookie check inter 2000 rise 2 fall 3
default段
backend default
mode http
option httpchk GET /index.html
server default 192.168.0.199:80 cookie check inter 2000 rise 2 fall 3 maxconn 10000
现在重启Haproxy可以做测试工作了
版权申明
本文系作者 @天边的云 原创发布在Loshub站点。未经许可,禁止转载。
暂无评论数据