DynDNS, Docker Wordpress und "bare metal" Nginx

Photon

Commodore
Registriert
Apr. 2006
Beiträge
5.036
Hallo zusammen,

folgendes Setup: Ein RaspberryPi 4 mit Nginx und einer statischen Webseite (kleines Projekt von mir). Nun soll da noch Wordpress drauf. Jedoch am besten in einem Docker-Container (zwecks besserer Wartbarkeit und weil es auf meiner bare metal Installation zu Problemen mit Elementor kommt, von denen ich vermute, dass sie in einem Container, wo sicher alle Abhängigkeiten erfüllt sind, nicht auftauchen).

Der Raspi kriegt via afraid.freedns.org eine Subdomain, die zeigt natürlich auf die Webseite, die von Nginx "serviert" wird. Ich würde nun gerne den Docker-Container, meinen Router und das DynDNS so konfigurieren, dass ein weiterer Subdomainname auf die Wordpress-Instanz im Docker-Container zeigt.

Als Frontend für die Docker-Verwaltung versuche ich Portainer zu nutzen. Da kann man einstellen, dass Docker nach außen an einem beliebigen Port hört und die Anfragen dann ins Innere des Containers an einen anderen Port weiterleitet (zum Beispiel 80 oder 443). Nun dachte ich, ich richte auf dem Router eine Portfreigabe für diesen Port ein, sodass Anfragen an den Raspi geschickt werden. Und bei DynDNS konfiguriere ich einen weiteren Subdomainnamen, der dann auf diesen Port zeigt, habe gelesen, dafür braucht man einen SRV-Eintrag statt eines A-EIntrags.

Nachdem jedes Puzzleteil (außer vielleicht der Router-Konfiguration) etwas ist, das ich bisher noch nie versucht habe, eine kurze Frage an die Experten: Klappt das so oder gibt es da irgendwelche Stolpersteine? Vielleicht geht es irgendwie anders besser?

Vielen Dank!
Photon
 
Moin moin,

wie du schon richtig erkannt hast, ist das Problem, das bei beiden Homepages dein Router auf port 80 angesprochen wird und deshalb beide an die gleiche interne IP weiterleiten würde.

Für mich die einfachste Methode wäre es nginx für beide Domains zu verwenden und dann wäre das Problem direkt Geschichte. Nginx kann wunderbar mit multiplen Domains umgehen. Warum es da Probleme mit Wordpress geben soll, habe ich auch nicht verstanden.
Elementor ist doch nur ein Websitebastelservice, oder? Ich kann mir da auch nicht vorstellen das es zu Problemen kommt.
Also,
Domain1 -> Ordner1
Domain2 -> Ordner2

zusätzlich brauchst du für Wordpress natürlich noch eine Sql-Datenbank
 
Der_Dicke82 schrieb:
Warum es da Probleme mit Wordpress geben soll, habe ich auch nicht verstanden.
Ich auch nicht. ;) Ich gehe davon aus, dass irgendwelche Libraries fehlen, Elementor mir aber nicht sagt, welche. Wordpress selbst funktioniert, nur Elementor nicht, es bleibt beim Laden des Editors hängen.

bobby1921 schrieb:
Ich fand dafür caddy immer sehr intuitiv. Macht dir subdomains + letsencrypt. Die Bedienung war sehr einfach.
Ah cool, das klingt auch nach einer möglichen Lösung! Inwiefern macht es denn das letsencrypt? Meinst du, es reicht dann ein letsencrypt-Zertifikat für alle Subdomains?
 
Photon schrieb:
Ah cool, das klingt auch nach einer möglichen Lösung! Inwiefern macht es denn das letsencrypt? Meinst du, es reicht dann ein letsencrypt-Zertifikat für alle Subdomains?
Caddy kümmert sich komplett um die Zertifikate. Du musst einfach nur einen DNS Eintrag auf deinen Server mit der entsprechenden subdomain machen und caddy macht den Rest. Holt das Zertifikat, updated es automatisch und so weiter.
 
Woah, das klingt wie schwarze Magie, das ist cool! :D Ist es denn sinnvoll, Caddy auch in einem Container laufen zu lassen? Hab den Raspi mit 2GB RAM, mach mir etwas Sorgen, dass zu viele Container ihm zu viel werden...
 
Ach cool, also die Symptome passen wie die Faust aufs Auge, jedoch sieht die entsprechende Zeile bei mir so aus:

Code:
try_files $uri $uri/ =404;

Habe sie dennoch durch die aus der Anleitung ersetzt und auch die anderen Schritte durchgeführt, leider aber in meinem Fall ohne Erfolg...
 
Eine Möglichkeit wäre auch gleich nginx Proxymanager(NPM) zu benutzen. Wäre in erster Linie webGUI basiert, was je nach subdomains anzahl das ganze beschleunigt. Ebenfalls funktioniert es mit letsencrypt zusammen und verlängert automatisch das Zertifikat. Zusätzlich wenn du eine Email eintragen tust, wirst du auch benachrichtigt wenn eine Erneuerung ansteht bzw durchgeführt worden ist.
 
Sorry für die späte Rückmeldung. Jetzt scheitert es schon daran, dass ich den Wordpress-Container nicht zum Laufen bekomme... Habe versucht, die offizielle Variante via Portainer aufzusetzen, sie wurde auch ausgeführt, aber ich konnte mich nicht unter dem angegebenen Port verbinden, es war kein Server da, der dort gelauscht hätte. Die Logs sagen:

Code:
WordPress not found in /var/www/html - copying now...
Complete! WordPress has been successfully copied to /var/www/html
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
[Tue Aug 23 09:01:05.256791 2022] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.54 (Debian) PHP/7.4.30 configured -- resuming normal operations
[Tue Aug 23 09:01:05.256964 2022] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

Unter 172.17.0.3 kann ich auf die Wordpress-Instanz aber nicht zugreifen... Was mache ich falsch?
 
Eigentlich sollte das mit NGINX so gehen denn ich habe das auch mit Unraid und verschiedenen Docker Diensten. Dazu muss ich eigentlich nur im Router die Portfreigabe für NGINX eintragen, keine weiteren


Die Docker Isntallationene welche ich zugänglich machen möchte haben eine feste IP
Docker 1 -> Wordpress 1 -> IP und Port vergeben 192.168.1.101:401
Docker 2 -> Wordpress 2 -> IP und Port vergeben 192.168.1.102:402

*Ports und IP frei erfunden, mit deinem System abgleichen


Im Adminpanel der Domain machst du einen CNAME eintrag (quasi Subdomain) der auf die Haupturl weiterleitet
wp1 -> deinname.lol
wp2 -> deinname.lol


In NGINX erstellst du dann 2 Einträge für die Wordpress Instanz
wp1.deinname.lol -> weiterleitung auf 192.168.1.101:401
wp2.deinname.lol -> weiterleitung auf 192.168.1.102:402
 
@Photon Theoretisch, wenn jede Wordpress Installation eine eigene Docker Instanz samt eigener IP hat, müsste man die Ports auch nicht ändern denn es wird ja sowieso auf eine andere IP geleitet.


Wegen dem Problem oben kann ich leider nicht helfen. Bin ich zu blöd dafür.
Eventuell löschen und neu anfangen?
Kann es sein dass Portainer irgend eine IP zusammenschustert welche sowieso nicht zu erreichen ist weil "fiktiv"? Schau mal in den Einstellungen zu dem Docker nach ob du manuell eine vergeben kannst
 
maxik schrieb:
Eventuell löschen und neu anfangen?
Das hab ich schon mehrfach versucht. :)

maxik schrieb:
Kann es sein dass Portainer irgend eine IP zusammenschustert welche sowieso nicht zu erreichen ist weil "fiktiv"?
Hab jetzt, wie hier beschrieben (https://www.reddit.com/r/docker/comments/rkq7o8/how_to_setup_ip_address_in_portainer_to_access/) in den Environment-Einstellungen eine IP im Bereich von 192.168.1.xxx festgelegt, kann die Wordpress-Instanz aber weiterhin nicht öffnen (siehe Screenshot, beim Klick auf den "Published Ports"-Eintrag sollte eigentlich die WordPress-Instanz aufgerufen werden, es kann aber keine Verbindung hergestellt werden).
 

Anhänge

  • Auswahl_2022_08_23_18_39_47.png
    Auswahl_2022_08_23_18_39_47.png
    174,9 KB · Aufrufe: 127
Puuuh dann weis ich auch nicht so recht. Frag mal auf Reddit
 
Muss man denn auch einen Nginx-Server-Container installieren oder ist das im Wordpress-Container enthalten? Würde mich wundern, wenn das so wäre, aber hier wird behauptet, man bräuchte Nginx extra:
 
Zurück
Oben