Skip to main content

Behind_LB

Behind-LB is a very simple and efficient Django middleware to obtain the client IP address when the project runs behind a trusted load balancer.

It allows to specify the path that activate the middleware, for example / or /a/specific/path. The path must be specified in the variable BEHIND_LB_PATH in your settings.py.

It works with any load balancer that sends the public remote address in a fixed relative position in the header (first, second,… , last). For example, Amazon ELB puts it in the last position, Google Compute Load Balancer in the penultimate one. The position must be specified in settings.BEHIND_LB_POSITION.

Quick start

  1. Install the package:

    pip install django-behind-lb

  2. Just add django-behind-lb to your INSTALLED_APPS setting like this:

    MIDDLEWARE_CLASSES = (
        'behind_lb.middleware.BehindLB',
        ...
  3. Configure the path and position in settings.py:

    BEHIND_LB_PATH = "/"
    BEHIND_LB_POSITION = -2 # For Google Compute Engine
  4. Try it reading the default request.META['REMOTE_ADDR'] in a View class. It should read the real client IP.

Position options

The BEHIND_LB_PATH value specifies the position of the real IP address in the X-Forwarded-For header, where 0 is the first (or “left”), 1 the second, -2 the penultimate position and -1 the last one. Examples:

BEHIND_LB_POSITION =  0 # First

BEHIND_LB_POSITION = -2 # Next to last, for Google Compute Engine LB

BEHIND_LB_POSITION = -1 # Last, for Amazon EC2 LB

In Github

The code is available at https://github.com/APSL/django-behind-lb

Metadata

Release files for django-behind-lb 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-behind-lb 1.0.2
File Size Uploaded
django-behind-lb-1.0.2.tar.gz 3.0 kB Details

Release files / django-behind-lb-1.0.2.tar.gz

Download URL django-behind-lb-1.0.2.tar.gz
Size 3.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9995fa77d719bb725fbfb7651b9d5aa15bc8aad45f57a9ac85cbc531836292be
BLAKE2b-256 checksum
How to use checksums
a8e052017efb7a9d45906a49c613efe52f3efacc60ad92f7b0a48ce16070a6e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.2 This release

1 release file

1.0.1

1 release file

1.0

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page