Skip to main content
OP changed the type of "id" (from int to uuid), I'm adding an other solution.
Source Link
David Duponchel
  • 4.1k
  • 3
  • 30
  • 36

You can use urlp and urlp_val to extract the id. Then, use acl to match the integer:

acl is_special path_beg /special acl small_id urlp_val(id) le 3 acl medium_id urlp_val(id) 4:6 acl high_id urlp_val(id) gt 6 use_backend bck1 if is_special small_id use_backend bck2 if is_special medium_id use_backend bck3 if is_special high_id default_backend bck_all 

Then, create 3 backends: one for each case.

Edit:

If you want to use regex on the query param, use urlp_reg:

acl small_id urlp_reg(id) ^[0-3] acl medium_id urlp_reg(id) ^[4-6] acl high_id urlp_reg(id) ^[7-9] 

Also check stick, depending on what you're trying to do.

You can use urlp and urlp_val to extract the id. Then, use acl to match the integer:

acl is_special path_beg /special acl small_id urlp_val(id) le 3 acl medium_id urlp_val(id) 4:6 acl high_id urlp_val(id) gt 6 use_backend bck1 if is_special small_id use_backend bck2 if is_special medium_id use_backend bck3 if is_special high_id default_backend bck_all 

Then, create 3 backends: one for each case.

You can use urlp and urlp_val to extract the id. Then, use acl to match the integer:

acl is_special path_beg /special acl small_id urlp_val(id) le 3 acl medium_id urlp_val(id) 4:6 acl high_id urlp_val(id) gt 6 use_backend bck1 if is_special small_id use_backend bck2 if is_special medium_id use_backend bck3 if is_special high_id default_backend bck_all 

Then, create 3 backends: one for each case.

Edit:

If you want to use regex on the query param, use urlp_reg:

acl small_id urlp_reg(id) ^[0-3] acl medium_id urlp_reg(id) ^[4-6] acl high_id urlp_reg(id) ^[7-9] 

Also check stick, depending on what you're trying to do.

Source Link
David Duponchel
  • 4.1k
  • 3
  • 30
  • 36

You can use urlp and urlp_val to extract the id. Then, use acl to match the integer:

acl is_special path_beg /special acl small_id urlp_val(id) le 3 acl medium_id urlp_val(id) 4:6 acl high_id urlp_val(id) gt 6 use_backend bck1 if is_special small_id use_backend bck2 if is_special medium_id use_backend bck3 if is_special high_id default_backend bck_all 

Then, create 3 backends: one for each case.