Hello,
I reply to myself. I think that is because the tcp-request need a condition for doing the track. Tranks, Ricardo F ---------------------------------------- > From: [email protected] > To: [email protected] > Subject: Track headers with tcp-request in listen only work with "if HTTP" > Date: Thu, 22 Aug 2013 13:03:32 +0200 > > Hello, > > I have been testing the connection tracking in the frontend based on headers, > but it only work if the "if HTTP" option is set: > > tcp-request inspect-delay 10s > tcp-request content track-sc0 hdr(x-forwarded-for,-1) if HTTP > > Without this option, the table doesn't fill, the connections aren't tracked. > > As is shown in the documentation, with tcp-request is possible to match layer > 7 conditions, but i don't know why is neccesary the "if HTTP" condition. > > This is a sample testing code: > global > maxconn 1000 > log 127.0.0.1 local5 info err > stats socket /var/run/haproxy.sock mode 0600 level admin > pidfile /var/run/haproxy.pid > > defaults > mode http > log global > retries 3 > option redispatch > timeout contimeout 5000 > timeout client 5000 > timeout srvtimeout 5000 > > listen proxy-http *:80 > mode http > option httplog > stats enable > option http-server-close > balance roundrobin > capture request header x-forwarded-for len 15 > stick-table type ip size 200k expire 60m store gpc0 > tcp-request inspect-delay 10s > tcp-request content track-sc0 hdr_ip(x-forwarded-for,1) if HTTP > http-request deny if { sc1_get_gpc0 eq 0 } > > > > The version is HA-Proxy 1.5-dev19 2013/06/17 > > > Thanks, > > RicardoF

