I have an application which I installed in two servers for balancing issue.
I wanted to route the traffic like below:
server 1: client server 2: admin
server 1 app config: host: 192.168.0.101 port: 5031
server 2 app config: host: 192.168.0.102 port: 5032
Application is same in both servers with same database connection.
I installed haproxy in 192.168.0.101 with port 5033 and setup:
frontend hh-test
bind 192.168.0.101:5033
mode tcp
option tcplog
acl is_admin path_reg ^/admin/sales$
use_backend server2 if is_admin
default_backend server1
backend server2
mode tcp
server admin 192.168.0.102:5032
backend server1
mode tcp
server client 192.168.0.101:5031
It does work. When I access http://192.168.0.101:5033 It serves from Server 1 and when I access http://192.168.0.101:5033/admin/sales it serves from server2 ...as expected. But some request goes to server1 accessing same /admin/sales url. Very few. I am not sure what I am doing wrong that some request goes to the other backend. Can I have an insight please?
I had to use http mode to catch url properly.
So working version is:
frontend hh-test
bind 192.168.0.101:5033
mode http
option httplog
acl is_admin path_reg ^/admin/sales$
use_backend server2 if is_admin
default_backend server1
backend server2
mode http
server admin 192.168.0.102:5032
backend server1
mode http
server client 192.168.0.101:5031