Hi sachin, Look my conf, I turned your tcp-request content statement into http-request.
Baptiste On Thu, Jun 4, 2015 at 12:05 PM, Sachin Shetty <sshe...@egnyte.com> wrote: > 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 >>> >>> > >