Re: Welcher reverse proxy für VM mit lxc?

Startseite
Anhänge:
Nachricht
+ (text/plain)
Nachricht löschen
Nachricht beantworten
Autor: Sven Velt
Datum:  
To: list
Betreff: Re: Welcher reverse proxy für VM mit lxc?
Moin!

On 16.04.21 15:19, Ralph Lindner wrote:
> Ich möchte auf einem root-server (VM von Netcup) mehrere lxc mit z. B.
> Webservern oder Nextcloud einrichten. Damit die URL beim richtigen lxc
> landen, benötige ich natürlich einen reverse proxy. Soweit so klar.


Bingo.

> Es sollte aber auch möglich sein nachträglich sowohl das lxc-Ziel (einer
> Domain) zu ändern, als auch die Webadresse des lxc.


Das sind ja die Einstellungen des Reverse-Proxy. Also so ungefähr.

(www.)domain1.de → 192.168.1.101
(www.)domain2.de → 192.168.1.102

Die genauen Domains und Ziele müssen ja in der Config des RevProxy
hinterlegt werden.

> - Ersteres z. B. um auf einen Mirror umzustellen oder nach einem
> Relaunch auf ein neues System.


Würde in den Beispielen bedeuten, die (Ziel-)IP-Adresse des LXContainer
anzupassen.

> - Zweites um aus einer Entwicklungsumgebung ein Produktivsystem zu
> machen. [z. B. wenn ein lxc zuerst als Entwicklungsumgebung (erreichbar
> z. B. unter https://kunde1.dev.example.com) genutzt wird und
> anschließend als Produktivsystem (unter https://kunde1.com)]


Umstellung/Ergänzung der Domain(s) im RevProxy. Und evtl. noch
Anpassung(en) im Backend, damit Links&Co. mit den richtigen URLs/Domains
generiert werden.

> Wegen dieser beiden Anforderungen erscheint es mir ratsam die
> letsencrypt-Zertifikate vom reverse proxy verwalten zu lassen und nicht
> vom lxc. Ist das plausibel und sehe ich das richtig?


Das ist ein bisschen Konzept-Frage. *ICH* halte es für ausreichend, wenn
SSL auf dem RevProxy terminiert (und dort auch verwaltet wird, z.B.
Lets-Encrypt oder sowas) und nach hinten einfach HTTP gesprochen wird -
wenn jemand den Traffic dort abgreifen kann, kann er's auch im
Container. Außerdem kann man dann mit dem RevProxy ggf. auch noch die
Header/Inhalte fixen/hinzufügen/... Ja, BTDT, weil immer wieder WebApps
davon ausgehen, dass sie den ganzen Server für sich haben 🙄

Auf der anderen Seite gibt es aber auch die Möglichkeit, anhand von SNI
"Server Name Indication", dem "Host:"-Header von SSL/TLS den
Backend-Server auszuwählen. Dann wäre HAProxy, sniproxy oder nginx
(nicht Apache) Dein RevProxy. Irgendwas davon konnte dann keine
Wildcard-Zertifikate, irgendwas nur einen (Teil-)Domainnamen je
Backend-Server, auch deswegen hab ich das Thema aufgegeben. Mag aber
sein, dass sich da auch schon wieder was getan hat.

Bonus-Frage: Soll der ReverseProxy auf dem Host oder ebenfalls in einem
Container laufen? Und schon wieder: Religionsfrage 😁

> Wenn ja, welche Software sollte man als reverse proxy einsetzen?
> nginx oder apache oder gleich große Geschütze wie HAProxy?


Den, mit dem Du Dich am meisten auskennst. Nein, kein Witz früher oder
später wirst Du an Stellen kommen, wo Du nacharbeiten musst. Und das
"Nacharbeiten" ist dann halt vom jeweiligen Server abhängig. Teilweise
ist es sogar so, dass Du Fehler mit einem der Server hast, mit einem
anderen gar nicht, weil er irgendwas von vorne herein anders macht.

BTW, HAProxy ist kein großes Geschoss. Ist halt ein
Reverse-Proxy/Loadbalancer und das beherrschen sowohl Apache als auch
nginx ebenfalls.

Und falls jetzt gleich wieder ein nginx-Jünger um die Ecke kommt: Nein,
damit ist nicht alles einfach einfach und funktioniert out-of-the-box 😜

> Für HAProxy habe ich eine Anleitung zur zentralen Verwaltung der
> Zertifikate mit certbot gefunden
> (https://kevinbentlage.nl/blog/lets-encrypt-with-haproxy/).


Dass ich kein Freund von certbot bin, sollte hier ja hinlänglich bekannt
sein. In meinen Setups läuft entweder dehydrated.io (nach wie vor mein
Favorit) oder acme.sh (in Kombination mit haproxy). Aber grundsätzlich
gilt auch hier: Der LE-Client, mit dem Du Dich auskennst.

Das Setup aus dem Link funktioniert grundsätzlich. BTDT, mit certbot und
acme.sh - dehydrated.io bräuchte dann halt 'nen zusätzlichen Web-Server,
deswegen nehm ich das an dieser Stelle nicht.

> Allerdings bevorzuge ich in diesem Fall unbedingt die EINFACHSTE Lösung,
> denn ich habe bisher noch nie reverse proxy konfiguriert und bin auch
> mit lxc noch Anfänger.

> Welches Vorgehen würdet ihr mir empfehlen?

Ganz klar: Apache auf dem Host, mit Deinem favorisierten LE-Client.
Warum? Weil Du schon mit Apache gemacht hast, die grundsätzliche
Konfiguration kennst, es viele Möglichkeiten gibt Einfluss zu nehmen und
- WICHTIG - Du findest zu fast allen Problemen Lösungen im Netz. Und ob
Dein VHost nun Reverse-Proxy ist oder Dateien direkt ausliefert ist für
SSL/TLS-Dinge egal, hier findest Du also auch bestimmt bei Problemen
Hilfe im Netz.

Und wenn ich dran denke 😝 , dann erweitere ich nochmal die Lösung im
LUSC-Wiki zum RevProxy!

Bye

Sven

-- 
-- 
Leukämie    → http://de.wikipedia.org/wiki/Leuk%C3%A4mie
Heilung     → http://de.wikipedia.org/wiki/Knochenmark#Knochenmarkspende
Typisierung → https://akb.de/registrierung/ https://zkrd.de/de/adressen/
Fragen?     → sven@???
-- 
Mailing-Liste der Linux User Schwabach (LUSC) e.V.
Vor und beim Posten bitte
        => http://lusc.de/List-Netiquette <=    und
        => http://lusc.de/List-Howto      <=    beachten. Danke!