DEV Community

Cover image for How To Set HTTP-Request Header In Haproxy
πŸš€ Vu Dao πŸš€
πŸš€ Vu Dao πŸš€

Posted on β€’ Edited on

11 2

How To Set HTTP-Request Header In Haproxy

  • This post describes how haproxy forwards request with header to AWS Application Loadbalancer (ALB).

  • The purpose of adding header to http-request is to create listen rule in ALB

  • Use SimpleHTTPServer to dump header for testing

1. Test dump header

  • haproxy.cfg ```

frontend test-header
bind *:80
default_backend testheader

backend testheader
http-request set-header myheader 123
server disabled-server 127.0.0.1:1 disabled
server localhost localhost:8000


- Create SimpleHTTPServer to listen on port 8000 and dump header for any requests come
Enter fullscreen mode Exit fullscreen mode

!/usr/bin/env python3

import http.server as SimpleHTTPServer
import socketserver as SocketServer
import logging

PORT = 8000

class GetHandler(
SimpleHTTPServer.SimpleHTTPRequestHandler
):

def do_GET(self):
    logging.error(self.headers)
    SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
Enter fullscreen mode Exit fullscreen mode

Handler = GetHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)

httpd.serve_forever()


- Test by running `curl localhost` and the result
Enter fullscreen mode Exit fullscreen mode

~:/# python3 3serv.py

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Accept-Encoding: gzip

Connection: close

X-Forwarded-Proto: https

myheader: 123


It shows `myheader: 123` as expected

**2. Apply to ALB**
Enter fullscreen mode Exit fullscreen mode

backend appsvc
http-request set-header myheader 123
server disabled-server 127.0.0.1:1 disabled
server myapp reader-1111111111.us-east-1.elb.amazonaws.com:80

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/0hh3xde1gz5jxaazpgs5.png)

**More about haproxy**
- [HAProxy With Resolvers In Case Of AWS Application LoadBalancer
](https://dev.to/vumdao/haproxy-with-resolvers-in-case-of-aws-application-loadbalancer-d1n)
- [How To Block IP Addresses In HAProxy](https://dev.to/vumdao/how-to-block-ip-addresses-in-haproxy-3f84)
Enter fullscreen mode Exit fullscreen mode

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

πŸ‘‹ Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Communityβ€”every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple β€œthank you” goes a long wayβ€”express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay