一.haproxy
本文略过haproxy安装和基本配置
主要写一下haproxy根据不同不路径访问不同集群
本文架构如图,集群A和集群B就先用一台web服务器代替

haproxy匹配不同路径转发,tengine安装_第1张图片

利用ACL匹配访问路径,访问192.168.0.11/a,和192.168.0.11/b时返回不同集群的内容,配置如下

listen web
bind 192.168.0.11:80
mode http
acl static_path_a path_beg -i /a #path_beg匹配URL开头
use_backend static_path_host_a if static_path_a
acl static_path_b path_beg -i /b
use_backend static_path_host_b if static_path_b

backend static_path_host_a
server web1 192.168.0.109:80

backend static_path_host_b
server web1 192.168.0.105:80

当然实际情况backend中有很多提供相同服务的服务器,我在这分别在102.168.0.109和192.168.0.105搭建两台apache进行测试,在默认目录中创建a,b目录,默认页输入不同内容,效果如图

haproxy匹配不同路径转发,tengine安装_第2张图片

haproxy匹配不同路径转发,tengine安装_第3张图片

二.编译安装tengine并配置虚拟主机
现在有很多公司都用tengine了,它有很多功能nginx没有,具体请官网学习
http://tengine.taobao.org/

1.编译安装过程,整个过程类似nginx

wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz

tar -xf tengine-2.3.2.tar.gz

cd tengine-2.3.2

./configure --prefix=/apps/tengine --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

make && make install

/apps/tengine/sbin/nginx -t 测试一下
/apps/tengine/sbin/nginx 启动
haproxy匹配不同路径转发,tengine安装

2.虚拟主机

在tengine主配置文件中加入
vi /apps/tengine/conf/nginx.conf

include /apps/tengine/conf/conf.d/*.conf

vi /apps/tengine/conf/conf.d/zy.conf

server {
listen 9001;
server_name api.zy.com;
location / {
root /data/tengine/html/;
index index.html;
}
}

echo "tengine api.zy.com:9001:" > /data/tengine/html/index.html

/apps/tengine/sbin/nginx -s reload

测试,hosts表中加入测试域名和IP对应关系,结果如图:
haproxy匹配不同路径转发,tengine安装