Ich habe eine Django App, die Apache und mod_wsgi auf einer EC2 Instanz hinter einem AWS ELB Balancer verwendet. Der Balancer ordnet den SSL-Datenverkehr (Port 443) dem Port 8080 auf der EC2-Instanz zu. Apache verfügt über einen auf Port 8080 konfigurierten VirtualHost, um die Django-App zu bedienen, wobei ServerName auf den Domain-Namen der Website eingestellt ist. Django läuft im Produktionsmodus (DEBUG = False) und stellt unter anderem einen healtcheck-Endpunkt (at/healtcheck) zur Verfügung. Die Einstellung ALLOWED_HOSTS wird auf den Domänennamen für die Website sowie auf die private IP-Adresse der EC2-Instanz festgelegt, damit der Load Balancer den Endpunkt des Healthchecks erreichen kann.Django HTTP_HOST Fehler auf AWS EC2 hinter Load Balancer
Mit dieser Konfiguration funktioniert alles einwandfrei. Das Problem ist, dass ich mit Fehlermeldungen wie diese gelegentliche Ausbrüche von E-Mails von Django halten Empfang: ERROR (EXTERNAL IP): Invalid HTTP_HOST header: '52.51.147.134'. You may need to add u'52.51.147.134' to ALLOWED_HOSTS.
Die Header enthalten auch HTTP_X_FORWARDED_FOR = '139.162.13.205'
ich verschiedene IP-Adressen (und manchmal Host-Namen), der Zugehörigkeit zu Skript-Kiddies, nehme ich an .
Wie kann ich verhindern, dass dieser Datenverkehr jemals die Django-App erreicht, während gültiger Datenverkehr (HTTP_HOST ist mein Domänenname) und ELB heartcheck-Datenverkehr (wo ist HTTP_HOST meine private IP-Adresse) zulässig ist?
Wenn ich richtig verstehe, ist das nur lästig, Sie haben keine anderen negativen Auswirkungen? Wie auch immer, Sie sollten in der Lage sein, dies einfach in Apache zu filtern, aber es wäre nützlich, wenn Sie Apache-Version und aktuelle VirtualHost .conf –