Configurer HAProxy pour router le trafic basé sur url_param

Je suis très nouveau sur HAProxy. J’ai passé quelques heures à essayer de comprendre comment le faire, mais je ne pouvais obtenir aucune piste. Mon exigence est la suivante:

Si le sharepoint fin de la demande est / special, je dois vérifier URL_PARAM.

Par exemple: localhost / special? Id = 10

Basé sur l’ID, je dois le router vers l’un des 3 serveurs. If id 3 and id <=6 server2 else server3 .

Si le sharepoint fin n’est pas / round round spécial entre les 3 serveurs.

Comment puis-je réaliser cet équilibrage à 2 niveaux?

Vous pouvez utiliser urlp et urlp_val pour extraire l’identifiant. Ensuite, utilisez acl pour correspondre à l’entier :

 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 

Ensuite, créez 3 backends: un pour chaque cas.

Modifier:

Si vous souhaitez utiliser regex sur le urlp_reg requête, utilisez 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] 

Vérifiez également le stick , selon ce que vous essayez de faire.