
Pelikaanbeeldje
Afbeelding

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
Het heeft wat langer geduurd dan verwacht door wat gezondheidsgerelateerde problemen, maar Skyz 2.0 is nu officieel gelanceerd.
Zoals ik al eerder vermelde is er niet zo veel veranderd. De reden voor de update was het herschrijven van de gehele codebase in Django. Ik heb wel enkele kleine UI-wijzigingen gedaan (zo kan je nu locaties als favoriet markeren), maar de site is voor de rest hetzelfde.
De hostingprovider Pixelhosting sponsort nu ook de hostinginfrastructuur.
Ik was een aantal servers aan het herinstalleren met Debian Trixie, en ik dacht dat het wel leuk was als ik een dynamische login banner maakte die wat nuttige informatie toont na het inloggen.
Zet het volgende in /etc/update-motd.d/20-sysinfo
#!/bin/bash
echo "----------------------------------------"
echo "System Information as of: $(date)"
echo "Hostname: $(hostname)"
echo "Uptime : $(uptime -p)"
echo "Load : $(cat /proc/loadavg)"
echo "Memory : $(free -h | awk '/Mem:/ { print $3 " / " $2 }')"
echo "Disk : $(df -h / | awk '/\// { print $3 " / " $2 }')"
echo "IP Addr : $(hostname -I | awk '{ print $1 }')"
echo "Users : $(who | wc -l) logged in"
echo "----------------------------------------"
En maak het vervolgens uitvoerbaar (chmod +x /etc/update-motd.d/20-sysinfo
)
Als je nu inlogt, zou je systeeminformatie moeten zien.