后端服务器真正发布的网站是 192.168.1.6:8888/abc 和 192.168.1.7:8888/abc ,haproxy 的 ip 是 192.168.1.5 ,如何在 haproxy 中设置用户访问 192.168.1.5:8888/abc 时,http 请求将被转发到真正的后端服务器(192.168.1.6:8888/abc 和 192.168.1.7:8888/abc)?默认后端服务器是 192.168.1.8:8088 和 192.168.1.9。(默认的 nginx 网站)
+++++++++++++我的配置是++++++++++++++
前端案例3
绑定192.168.1.5:8888
acl abc path_beg -i /abc
use_backend abc_servers if abc
default_backend nginx1
后端 abc_servers
mode tcp
balance roundrobin
server abc1 192.168.1.6:8888 cookie
server abc2 192.168.1.7:8888 cookie
后端 nginx1
balance roundrobin
server master1 192.168.1.8:8888 maxconn 1024 weight 5 check
server master2 192.168.1.9:80 maxconn 1024 weight 5 check
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
生效后我访问 192.168.1.5:8888 可以访问 nginx1 第一个服务器,但是访问 192.168.1.5:8888/abc 就报错:
////////////////////////////////////////////////////////
404 Not Found
nginx/1.17.9
////////////////////////////////////////////////////////
答案1
基本配置如下:
frontend web.jerrywang.org
bind 192.168.1.5:8888
use_backend api_servers if { path_beg /abc/ }
# default_backend web_servers # The users will get 503 for anything else
backend api_servers
balance roundrobin
cookie SERVERUSED insert indirect nocache
option httpchk HEAD /
default-server check maxconn 20
server server1 192.168.1.6:8888 cookie server1
server server2 192.168.1.7:8888 cookie server2