Mit Bezug auf meinen vorherigen Post muss ich hier um Hilfe bitten.
Ich hab schon dutzende Foren durchwühlt, aber das Fediverse soll ja leben und deswegen frage ich explizit hier um Rat.
Worum geht es?
Ich versuche eine Anwendung (filebrowser), die eine HTML Seite bereitstellt, von außen über eine Subdomain zu erreichen.
Was geht?
Ich kann über http://domain.de:8080 die Anwendung aufrufen und darin arbeiten.
Eine andere “nur-HTML” Subdomain funktioniert und ist zu erreichen (fotos.domain.de).
Filebrowser ist im Lan über 192.168.0.50:8080 zu erreichen.
Was hab ich versucht?
Das wichtigste:
Seite local aufrufen ist schwer, da headless; aber lynx und w3m zeigen nichts; google.de wird dargestellt
Port ändern von 8080 zu 7000
BaseUrl ändern auf /daten / /filebrowser
VirtualHost config überprüft und geändert, mehrfach…
Apache Proxy Module kontrolliert
Apache Debug Logs überprüft
Ich brauche nun eine Art Troubleshooting, damit ich bei der Fehlersuche die schlimme Stelle finde; ich vermute es ist irgendwas banales wie falsche config o.ä.
Die Config:
ServerName wolke.domain.de
Location "/filebrowser/" <- in Klammern
ProxyPass http://127.0.0.1:8080/filebrowser
ProxyPassReverse http://127.0.0.1:8080/filebrowser
/Location <- auch Klammer
ProxyPreserveHost On
RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule (.*) ws://127.0.0.1:8080/$1 [P,L]
RewriteRule ^/filebrowser$ /filebrowser/ [L,R=301]
RewriteCond %{SERVER_NAME} =wolke.domain.de
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Dinge die fehlen, werden nachgereicht.
Edit: ich versuche mich momentan mit nginx statt Apache
Edit2: Danke für eure Hilfe, es läuft nun ordentlich, wenn auch nicht auf apache, aber ich hab meinen Schweinehund überwunden und bin auf nginx umgestiegen.
Kommt der Request auf dem Zielserver korrekt an? Ggf. brauchst du ein / nach filebrowser.
Generell wuerde ich empfehlen reverse proxy mit was zu machen das explizit dafuer entwickelt wurde, so wie nginx. Apache war toll in den 90ern und fruehen 00ern, inzwischen ist das ausserhalb von Nischenanwendungen wie “ich will ne PHP-Anwendung reinwerfen, und Upstream testet nur mit Apache” meistens die schlechteste Loesung.
Ich hab schon mehrere Varianten mit /filebrowser und /filebrowser/ bzw. auch anderen baseurl wie /daten durchprobiert.
Wechsel zu nginx hatte ich schon versucht, aber damit hat meine piwigo gallery* gestreikt.
Ich muss dazu sagen, dass ich ich das erste mal seit ~20 Jahren ernsthaft mit Webservern beschäftige.Vermutlich war ich nicht in der Lage nginx die richtigen php Module anzubieten.
Apache wird immer dann schwer zu debuggen wenn man versucht mehrere verschiedene Anwendungen/Seiten in einem Apachen zu haben. nginx hat nix wie mod_php, PHP und aehnliches wird da via fastcgi angebunden, was bei der Ersteinrichtung etwas komplexer ist als mod_php.
Ein “modernes” Setup bei dem Apache die PHP-Anwendung ausliefert haette einen nginx nach draussen der Reverseproxy auf den Apache und andere Server macht, und ggf. selber ein bisschen statisches Zeug ausliefert, und den Apache (oder mehrere davon, wenn mehrere Anwendungen) nur fuer die jeweilige Anwendung konfiguriert. Hat dann auch den zusaetzlichen Vorteil dass man die einzelnen Teile ordentlich isolieren kann (docker, podman, lxc, KVM, wenns richtig fett ist einen eigenen Server) - was zum einen debuggen erleichtert, zum anderen auch das Updaten spaeter, da du maximal immer nur eine Anwendung kaputtmachen kannst.
Ich versuche mich nochmal an nginx.
Auch hier gilt weiterhin: Je einfacher die Konfiguration, desto besser. nginx ist zwar meistens einfacher zu debuggen als Apache - noch einfacher wirds aber wenn die Konfiguration keine Seiteneffekte von anderen Anwendungen haben kann.
Falls du das noch nicht machst, wirf Konfigurationsdateien in git. Docker oder Podman ist fuer Heimsetups ganz nuetzlich weil du da jeweils einen Container pro Anwendung bauen kannst, und die Containerconfig dann komplett in git werfen kannst. Update waere dann einfach ein Austausch des Containers. Ich selber benutz das eher weniger - ich hab einen wilden mix aus lxc, kvm und bare metal die mit Ansible verwaltet werden, aber bei Kleinsetups ist das erstmal einfacher das ueber Docker/Podman zu erschlagen.
Danke für den Schubs mit nginx, es funktioniert.
Ah mist, bin heute nicht auf Arbeit und kann nicht vergleichen…
Egal.Wofür hast du den ganzen Rewrite-Kram? Kannst du das mal ohne testen?
Außerdem verstehe ich deine Formatierung nicht.
Steht da
Location wolke.domain.de (
?Das müsste doch `` sein.
Die Formatierung ist ziemlich in die Hose gegangen beim Posten; wie dem auch sei, ich versuche in der Zwischenzeit über nginx bessere Ergebnisse zu erzielen, da ich eh mal über einen Wechsel nachgedacht hatte.
Location
und/Location
müsste in spitzen Klammern stehen, also Kleiner- und Grösser-Zeichen.Edit: das hat Lemmy jetzt bei mir auch wegzensiert, obwohl ich es um 4 Zeichen eingerückt hatte. Dieser Bug ist schon bekannt.
Scheint ja jetzt zu klappen. (Da stand die richtige URL drin)
Im Zweifelsfall einfach mal mit
tcpdump -AAA -n -i lo port 8080
schauen was der Apache da schickt oder ob überhaupt etwas.ProxyPass und ProxyPassReverse brauchen noch einen weiteren Parameter, der erste Parameter muss die Location vor der Umleitung sein, also ggf. einfach / https://httpd.apache.org/docs/2.4/mod/mod_proxy.html
Das hab ich auch gelesen, aber da ich in den Klammern die Location angegeben habe, schmeißt er mir einen Fehler wenn ich zwischen ProxyPass und der Adresse noch ein / einfüge.
Edit: ich sehe gerade, dass das nicht ordentlich angezeigt wird.
Ich verwende caddy als reverse proxy und habe niemals gesehen zurück.
Konfiguration über das caddyfile ist sehr einfach und die VirtualHost config muss in 98% der Fälle nicht angegriffen werden.