Hi,
I want to have several different stick-tables with different keys (to keep track of source IPs, but also URLs, etc).
It seems that the first http-request or tcp-request “empties” the request or stops the evaluation, for instance with this conf file :
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
backend ipstore
stick-table type ip size 100 expire 1h store http_req_cnt,http_req_rate(15m)
backend urlstore
#stick-table type string len 50 size 100 expire 2h store conn_cnt
stick-table type ip size 100 expire 1h store conn_cnt
frontend front1
bind *:80
tcp-request content track-sc0 src table ipstore
#http-request track-sc0 src table ipstore
tcp-request content track-sc0 base table urlstore
#http-request track-sc0 base table urlstore
default_backend back1
backend back1
server web1 www.xxx.yyy.zzz
When I do some http requests, they are tracked correctly in ipstore (first stick-table), but there is nothing in urlstore. I don’t remember reading something like this in the documentation (in fact I read that tcp-request content doesn’t stop evaluation). Did I miss something?
I use version 1.6.13-1ppa1~trusty on Ubuntu 14.04 (but I think I already noticed it on other versions like 1.7)
Best regards,
Gurvan Kervern