Django REMOTE_IP to X-Forwarded-For middleware

Bij het uitrollen van een Django applicatie met Gunicorn als WSGI server, klopt de request.META[“REMOTE_IP”] waarde vaak niet. Deze toont dan het IP van de reverse proxy, of is zelfs leeg. We kunnen dit oplossen met een klein stukje middleware:

# app/middleware.py
class XForwardedForMiddleware(MiddlewareMixin):
def process_request(self, request):
if 'HTTP_X_FORWARDED_FOR' in request.META:
request.META['REMOTE_ADDR'] = request.META['HTTP_X_FORWARDED_FOR'].split(",")[0].strip()
return None

Vervolgens kunnen we deze middleware inschakelen door ‘app.middleware.XForwardedForMiddleware’ aan onze middleware toe te voegen in settings.py

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *