-
-
Notifications
You must be signed in to change notification settings - Fork 359
Description
Problem: Axes records the IP address of the nginx container in the docker network for all access records.
django-axes[ipware]==8.0.0 running in Docker, behind nginx and Cloudflare DNS Proxy.
My nginx passes X_FORWARDED_FOR using proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for, which I've confirmed outputs correctly with custom logging:
"GET / HTTP/1.1" 200 17706 <user agent> XFF IN:"<my public IPv6>" XFF OUT:"<my public IPv6>, <cloudflare IP>"
Where XFF IN = $http_x_forwarded_for and XFF OUT = $proxy_add_x_forwarded_for.
Furthermore, I created a debug view in Django to output request.META values:
{"X_FORWARDED_FOR": "<my public IPv6>, <cloudflare IP>", "HTTP_X_FORWARDED_FOR": "<my public IPv6>, <cloudflare IP>"}
My AXES_IPWARE_META_PRECEDENCE_ORDER is set to: [ 'HTTP_X_FORWARDED_FOR', 'X_FORWARDED_FOR', 'REMOTE_ADDR', ]. I've also tried removing REMOTE_ADDR and the behavior persists.
For AXES_IPWARE_PROXY_COUNT, I've tried 2, 1, and None. It always ends up recording the nginx container's IP address.
Am I misconfiguring somewhere or could there be an underlying issue?