[Hilfe] ReverseProxy mit Apache 2.4

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 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:


<span style="color:#323232;">
</span><span style="color:#323232;">  ServerName wolke.domain.de
</span><span style="color:#323232;">
</span><span style="color:#323232;">  Location "/filebrowser/" &lt;- in  Klammern
</span><span style="color:#323232;">    ProxyPass http://127.0.0.1:8080/filebrowser
</span><span style="color:#323232;">    ProxyPassReverse http://127.0.0.1:8080/filebrowser
</span><span style="color:#323232;">  /Location &lt;- auch Klammer
</span><span style="color:#323232;">
</span><span style="color:#323232;">  ProxyPreserveHost On
</span><span style="color:#323232;">  RewriteEngine On
</span><span style="color:#323232;">
</span><span style="color:#323232;">  RewriteCond %{HTTP:Connection} Upgrade [NC]
</span><span style="color:#323232;">  RewriteCond %{HTTP:Upgrade} websocket [NC]
</span><span style="color:#323232;">  RewriteRule (.*) ws://127.0.0.1:8080/$1 [P,L]
</span><span style="color:#323232;">
</span><span style="color:#323232;">  RewriteRule ^/filebrowser$ /filebrowser/ [L,R=301]
</span><span style="color:#323232;">  RewriteCond %{SERVER_NAME} =wolke.domain.de
</span><span style="color:#323232;">  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</span><span style="color:#323232;">
</span>

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.

Black616Angel,

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.

geizeskrank,
@geizeskrank@feddit.de avatar

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.

elmicha, (edited )

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.

Black616Angel,

Scheint ja jetzt zu klappen. (Da stand die richtige URL drin)

mvpts,

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.

taladar,

Im Zweifelsfall einfach mal mit tcpdump -AAA -n -i lo port 8080 schauen was der Apache da schickt oder ob überhaupt etwas.

taladar,

ProxyPass und ProxyPassReverse brauchen noch einen weiteren Parameter, der erste Parameter muss die Location vor der Umleitung sein, also ggf. einfach / httpd.apache.org/docs/2.4/mod/mod_proxy.html

geizeskrank, (edited )
@geizeskrank@feddit.de avatar

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.

aard,
@aard@kyu.de avatar

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.

geizeskrank,
@geizeskrank@feddit.de avatar

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.

aard,
@aard@kyu.de avatar

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.

geizeskrank,
@geizeskrank@feddit.de avatar

Ich versuche mich nochmal an nginx.

aard,
@aard@kyu.de avatar

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.

geizeskrank,
@geizeskrank@feddit.de avatar

Danke für den Schubs mit nginx, es funktioniert.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • uselessserver093
  • Food
  • aaaaaaacccccccce
  • [email protected]
  • test
  • CafeMeta
  • testmag
  • MUD
  • RhythmGameZone
  • RSS
  • dabs
  • Socialism
  • KbinCafe
  • TheResearchGuardian
  • oklahoma
  • feritale
  • SuperSentai
  • KamenRider
  • All magazines