Tried it, I donĀ¹t see the table populating at all. stick-table type string size 1M expire 10m store conn_cur acl is_range hdr_sub(Range) bytes= acl is_path_throttled path_beg /public-api/v1/fs-content-download #tcp-request content track-sc1 base32 if is_range is_path_throttled http-request set-header X-track %[url] tcp-request content track-sc1 req.hdr(X-track) if is_range is_path_throttled http-request deny if { sc1_conn_cur gt 2 } is_range is_path_throttled
(egnyte_server)egnyte@egnyte-laptop:~$ echo "show table haproxy_l2" | socat /tmp/haproxy.sock stdio # table: haproxy_l2, type: string, size:1048576, used:0 (egnyte_server)egnyte@egnyte-laptop:~$ On 6/3/15 8:36 PM, "Baptiste" <bed...@gmail.com> wrote: >Yes, the url sample copies whole URL as sent by the client. >Simply give it a try on a staging server and let us know the status. > >Baptiste > >On Wed, Jun 3, 2015 at 3:19 PM, Sachin Shetty <sshe...@egnyte.com> wrote: >> Thanks Baptiste - Will "http-request set-header X-track %[url]" help me >> track URL with query parameters as well? >> >> On 6/3/15 6:36 PM, "Baptiste" <bed...@gmail.com> wrote: >> >>>On Wed, Jun 3, 2015 at 2:17 PM, Sachin Shetty <sshe...@egnyte.com> >>>wrote: >>>> Hi, >>>> >>>> I am trying to write some throttles that would limit concurrent >>>>connections >>>> for Range requests + specific urls. For example I want to allow only 2 >>>> concurrent range requests downloading a file >>>> /public-api/v1/fs-content-download >>>> >>>> I have a working rule: >>>> >>>> stick-table type string size 1M expire 10m store conn_cur >>>> tcp-request inspect-delay 5s >>>> acl is_range hdr_sub(Range) bytes= >>>> acl is_path_throttled path_beg /public-api/v1/fs-content-download >>>> tcp-request content track-sc1 base32 if is_range is_path_throttled >>>> http-request deny if { sc1_conn_cur gt 2 } is_range is_path_throttled >>>> >>>> Just wanted to see if there is a better way of doing this? Is this >>>>efficient >>>> enough. >>>> >>>> I need to include the query string as well in my tracker, but I could >>>>not >>>> figure that out. >>>> >>>> Thanks >>>> Sachin >>>> >>> >>>Hi Sachin, >>> >>>I would do it like this: >>> >>> stick-table type string size 1M expire 10m store conn_cur >>> tcp-request inspect-delay 5s >>> tcp-request accept if HTTP >>> acl is_range hdr_sub(Range) bytes= >>> acl is_path_throttled path_beg /public-api/v1/fs-content-download >>> http-request set-header X-track %[url] >>> http-request track-sc1 req.hdr(X-track) if is_range is_path_throttled >>> http-request deny if { sc1_conn_cur gt 2 } is_range is_path_throttled >>> >>>There might be some typo, but you get the idea. >>> >>>Baptiste >> >>