Bobcares

How to Use HAProxy ACLs to Get URL Parameters

by | Jun 25, 2024

Learn how to use HAProxy ACLs to get URL parameters. Our HAProxy Support team is here to help you with your questions and concerns.

How to Use HAProxy ACLs to Get URL Parameters

How to Use HAProxy ACLs to Get URL ParametersHAProxy is a reliable open-source software for high availability, load balancing, and proxying.

It offers different ways to manage and route traffic efficiently. One such method is `url_param(param_name)`, which lets us extract the value of a specific parameter from the URL query string.

Although this method doesn’t directly integrate with Access Control Lists (ACLs), we can use it in our configurations.

Additionally, HAProxy supports pattern matching within ACLs to manage URL parameters. Today we are going to take a look at both methods.

Using the url_param Fetch Method

The `url_param(param_name)` method in HAProxy is designed to fetch the value of a parameter named `param_name` from the URL query string. Also, this method is useful for routing decisions as per certain parameters in the URL.

Now, let’s look at an example where we check if a URL contains the `utm_source` parameter and route the request accordingly.

http-request
# Check if "utm_source" parameter exists
if url_param(utm_source) -m found
set-backend sales_server
# Otherwise, use default backend
else
use_backend default_backend

Here,

  • The configuration checks if the `utm_source` parameter exists in the URL.
  • If the parameter is found, the request goes to the `sales_server` backend.
  • If the parameter is not found, the request goes to the `default_backend`.

This method helps direct traffic based on specific marketing campaign parameters embedded in URLs.

Matching URL Patterns with Parameters

Although `url_param` is useful, HAProxy also lets us define ACLs that match specific URL patterns containing desired parameters. This method leverages the path fetch method within ACLs for more granular control.

Now, let’s consider an example where we want to route traffic based on the presence of the `category=news` parameter in the URL.

# Allow access to URLs with "category=latest" parameter
acl latest_category path /latest?category= latest
use_backend latest_server if latest_category

Here,

  • The latest_category ACL matches URLs with the path /latest and the query string containing category=latest.
  • If a URL matches this pattern, the request goes to the `latest_server` backend.

This method is useful for directing traffic to different backends based on content categories or other URL parameters.

By combining these methods, we can boost the HAProxy configuration to manage traffic efficiently. This ensures that requests go to the backend servers as per URL parameters.

[Need assistance with a different issue? Our team is available 24/7.]

Conclusion

In brief, our Support Experts demonstrated how to use HAProxy ACLs to get URL parameters.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF