Skip to content

How to Configure HAProxy http-request Rules

DodaTech Updated 2026-06-24 1 min read

http-request rules manipulate HTTP requests before they reach backend servers. They are essential for setting correct client information. This guide walks through the specific troubleshooting steps to diagnose and resolve http-request issues.

Before You Begin

Before you begin, be sure to have the following in place:

  • A Linux server with the relevant software installed
  • Access to the command line interface
  • Appropriate permissions (root or sudo)

Quick Fix

Wrong

No request header manipulation (backend sees original client data)

Wrong: Backend does not know client protocol

http-request set-header X-Forwarded-Proto https if { ssl_fc }\nhttp-request add-header X-Cache-Status HIT

Right: Adding X-Forwarded-Proto and custom headers

Output

HTTP request rules:\n  X-Forwarded-Proto: set to https if SSL\n  X-Cache-Status: added to all requests

Prevention

To avoid future issues, follow these best practices:

  • Use http-request set-header to replace existing headers
  • Use http-request add-header to append values
  • Use http-request del-header to remove sensitive headers
  • Use http-request redirect for URL-based redirects
  • Use http-request deny to block matching requests

DodaTech Tools

For further assistance with any of the above issues, consider using DodaTech consulting services or DodaTech tutorials for more in-depth guidance.

Common Mistakes with http request

  1. Non-exhaustive pattern matches that compile with warnings then crash at runtime
  2. Misunderstanding that String is [Char] with poor performance for large text operations
  3. Using foldl instead of foldl' causing stack overflow on large lists

These mistakes appear frequently in real-world HAPROXY code. DodaTech's contributors have identified these patterns through analysis of open-source projects and production systems.

Practice Exercise

Write a pure function that safely divides two integers using Maybe, then test it with edge cases like division by zero and negative numbers.

This exercise reinforces the concepts covered in this guide. Try implementing it before checking online solutions.

FAQ

What headers should I set for backend applications?|||X-Forwarded-For (client IP), X-Forwarded-Proto (http/https), X-Forwarded-Port (original port), and Host (original hostname).
Can I block requests with http-request? Yes. Use http-request deny [deny_status 403] to block requests matching ACL conditions.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro