Nginx Docker Reverse Proxy wirft 404 Fehler ab dem zweiten Request

Als großer Fan von “nackten Servern” auf denen nur Docker Container laufen, nutze ich Nginx als Reverse Proxy – im Speziellen das großartige Setup von jwilder/nginx-proxy in Kombinantion mit dem Let’s Encrypt Addon. Effektiv läuft das Teil passiv mit und schaut nur auf bestimmte Environment-Variablen anderer Docker Container. Sobald es diese sieht, wird automatisch ein Reverse Proxy in Nginx so konfiguriert, dass er diesen Dienst erreichbar macht und gleichzeitig wird noch ein Let’s Encrypt Cert für die entsprechende Domain besorgt und auf dem neuesten Stand gehalten.

Nun hatte ich in einem Setup mit sehr vielen gleichzeitig laufenden Diensten das Problem, dass einer der Dienste immer nur auf den ersten Request erfolgreich geantwortet hat, aber bei jedem weiteren Request nur noch einen 404 geworfen hat. Der Dienst selbst lief, Nginx hat auch keinen Fehler im Log geworfen und ich war etwas ratlos.

Nach ein paar grauen Haaren mehr und dem ein oder anderen versteckten Hinweis auf Google kam ich dann auf des Rätsels Lösung: durch ein fehlerhaftes Deployment lief kurzzeitig ein weiterer Container, der mittels der Environment Variable die gleiche URL für sich beanspruchte. Der Nginx Automatismus machte daraus automatisch einen Load Balancer. Nachdem das fehlerhafte Deployment weg war, wurde der Loadbalancer aber nicht mehr aufgelöst und somit war nur noch einer von beiden Einträgen aktiv. Warum der Nginx dann trotzdem immer wieder auf den nicht vorhandenen Host gehen wollte erschließt sich mir nicht so richtig, aber das war des Problems Lösung.

Also bin ich einfach per docker exec in den Nginx Container und habe die Datei /etc/nginx/conf.d/default editiert:


# server.name.com
upstream server.name.com {
# CONTAINER_NAME_1
server 123.45.0.67:1234;
# CONTAINER_NAME_2
server 123.45.0.78:1234;
}

Nachdem ich den Part von CONTAINER_NAME_2 gelöscht hatte, konnte ich mittels

nginx -s reload

die Config von Nginx on the fly neu laden und ab dem Moment lief der Service wieder wie gewohnt.

Mac USB Festplatte mit Filevault 2 (OSX Lion) nachträglich verschlüsseln

Seit Samstag habe ich auf meinem Arbeits-Macbook die Komplettverschlüsselung mittels Filevault 2 aktiviert. Wenn das Gerät mal abhanden kommen sollte, ist es so für den Finder wertlos – es sei denn, er baut die Festplatte aus. ABER: Diebe und anderes Gesindel kommen nicht an die sensitiven Daten ran. Das ganze Prozedere ist idiotensicher in den Systemeinstellungen im Punkt “Sicherheit” hinterlegt und schnell erledigt. Zumindest, wenn man eine SSD hat. OSX Lion schiebt die Umwandlung des Laufwerks aber bequem in den Hintergrund und man kann nach einem kurzen Neustart wie gewohnt weiter arbeiten.

Jetzt kommt das “aber”: wie oben erwähnt, habe ich eine SSD verbaut. Und wie ich bereits genug gejammert habe, ist die natürlich für meine Bedürfnisse zu klein, weshalb die ursprünglich verbaute 500Gb Platte als USB Laufwerk zum Einsatz kommt. So. Nun ist meine Systemplatte verschlüsselt und gesichert, aber die Platte mit den eigentlichen Daten ist für jeden verfügbar. Und blöderweise auch einfacher zu klauen. Also habe ich mich mal umgesehen, wie ich diese auch verschlüsseln kann.

Die Optionen sind:

  • einen Verschlüsselten Filevault Container mit dem Festplattendienstprogramm erstellen
  • Truecrypt Container
  • Komplettverschlüsselung der Partition mit Truecrypt
  • Verschlüsselung mit Filevault

Der verschlüsselte Filevault Container wäre sicher die einfachste Möglichkeit, jedoch ist er auch etwas umständlich. Er hat eine fixe Größe und muss auch immer extra gemounted werden – das gleiche gilt für den Truecrypt Container und die Truecrypt Partition. Bleibt noch die Verschlüsselung mit Filevault 2 – mit einem kleinen Haken: man muss die Platte dafür neu formatieren. Zumindest ist das der offizielle Weg. Das Internet hat mir aber noch einen anderen Weg gezeigt:

  • Terminal öffnen
  • diskutil cs convert /Volumes/[Name des Laufwerks] -passphrase
  • Nun werdet ihr nach einem Passwort für die Festplatte gefragt, welches ihr dann nochmals bestätigen müsst
  • anschließend wird die Partitionstabelle leicht modifiziert und dann beginnt die Umwandlung im Hintergrund
  • mittels folgendem Befehlt könnt ihr euch den Fortschritt ansehen (“Size (Converted)”):
  • diskutil cs list

Wenn ihr die Platte nun das nächste Mal wieder an den Rechner steckt, werdet ihr nach dem eingegebenen Passwort gefragt, anschließend ist die Platte dann normal verfügbar. Auch in Kombination mit Timemachine gibt es keine Probleme, da die Verschlüsselung transparent abläuft.

Solltet ihr die Verschlüsselung wieder rückgängig machen wollen, ist folgender Befehl nötig:

diskutil cs revert /Volumes/[Name des Laufwerks] -passphrase

Gebt das Verschlüsselungs-Passwort ein und schon wird die Verschlüsselung rückgängig gemacht.

via forums.macworld.com