My config file is below. By way of explanation, I am using an acl to redirect
urls that start with /cas to my single signon server. Everything else goes to
my tomcat servers. If I run ab without using a url that goes to /cas, then
everything roundrobins fine. However, my applications redirect to /cas which
in turn redirects them back to the haproxy cluster once authenticated. When I
go through this process, haproxy always puts the session on the first tomcat
instance. Is there a way for me to debug how haproxy/my config is making
decisions on which backend to use for a new session?
Thanx,
LES
=============
global
log 127.0.0.1 local0 info
maxconn 25000
stats socket /tmp/haproxy.sock level admin
defaults
log global
clitimeout 60000
srvtimeout 300000
contimeout 4000
retries 3
option redispatch
option httpclose
option abortonclose
listen http_https_redirect *:80
mode http
acl stunnel src 192.168.xxx.zzz/32
redirect prefix https://erp.barnhardt.local unless stunnel
frontend tomcat *:81
mode http
acl ssorequest path_beg /cas
use_backend sso if ssorequest
default_backend tomcat_cluster
backend sso
mode http
balance roundrobin
option forwardfor except 0.0.0.0
reqadd X-Forwarded-Proto:\ https
cookie SERVERID insert indirect
option httpchk HEAD /check.html HTTP/1.0
server sso 192.168.xxx.zzz:18080 cookie A check
backend tomcat_cluster
mode http
stats uri /haproxy?stats
stats enable
balance roundrobin
option httplog
option forwardfor except 0.0.0.0
reqadd X-Forwarded-Proto:\ https
cookie SERVERID insert indirect
option httpchk HEAD /check.html HTTP/1.0
server tomcat01-instance1 192.168.xxx.xxx:8080 cookie A check port 8081
inter 2000
server tomcat01-instance2 192.168.xxx.xxx:18080 cookie B check port
18081 inter 2000
server tomcat02-instance1 192.168.xxx.yyy:8080 cookie C check port 8081
inter 2000
server tomcat02-instance2 192.168.xxx.yyy:18080 cookie D check port
18081 inter 2000
server bkup-tomcat01-instance1 192.168.xxx.xxx:8080 cookie A check port
8080 inter 2000 backup
server bkup-tomcat01-instance2 192.168.xxx.xxx:18080 cookie B check
port 18080 inter 2000 backup
server bkup-tomcat02-instance1 192192.168.xxx.yyy168.60.157:8080 cookie
C check port 8080 inter 2000 backup
server bkup-tomcat02-instance2 192.168.xxx.yyy:18080 cookie D check
port 18080 inter 2000 backup