برخی مواقع هست یه کم تعداد acl ها براساس عملکردشون زیاد میشن ولی استفاده شون همپوشانی داره
مثلا شما نیاز هست ۲ یا ۳ acl رو برای یک شرایط خاص با هم استفاده کنید .
حالا ما دو حالت داریم .
حالت اول اینه که همه این acl ها باید حتما با هم برقرار بشن و عملا AND بشن با هم
حالت دوم اینه که اگر یکی از این acl ها هم برقرار بشه کافیه ولی ترتیب داریم مثلا اولویت با acl x هست بعد
acl y و بعد از اون acl z
خب اول ۳تا acl نمونه داریم که اینا هستن .
acl acl_x path_beg -i /admin acl acl_y path_end -i .php acl acl_z path_dom -i test.com
این مال حالت اول هست که باید همه شروط حتما برقرار بشن / کلا حالت پیش فرض برای درج acl ها استفاده از and هست
http-request deny if acl_x acl_y acl_z
در این حالت اگر آدرس با /admin شروع بشه و با .php تموم بشه و دامنه مورد تقاضا test.com باشه درخواست deny خواهد شد .
حالت دوم این هست که یکی از شروط برقرار باشه .
http-request deny if acl_x || acl_y || acl_z
در این حالت اگر شروع آدرس /admin باشه یا انتهاش .php باشه ( یا نباشه ) و اگر دومین test.com باشه ( یا نباشه ) این acl برقرار شده و درخواست deny خواهد شد .
حالا شما ترکیب این دو رو هم میتونین استفاده کنین
http-request deny if acl_x (acl_y || acl_z )
در این حالت باید شروع آدرس /admin باشه ولی میتونه انتهای آدرس .php یا دومین آدرس test.com ( یکی از این دو حالت کافیه ) در این حالت درخواست deny خواهد شد .
#haproxy
#haproxy_learning
#آموزشی