Frage: Proxy-Domain (Apache) erzeugt immer trailing Slash im Ziel – kollidiert das mit /liveconfig/hosting/dnsupdate?

  • Hallo kk,

    mir ist nach dem Umstieg auf 3.2.4 etwas aufgefallen, das ich gerne einmal zur Einordnung teilen möchte – bin mir nicht sicher, ob das so gewollt ist oder ein Nebeneffekt, den ich einfach noch nicht richtig verstehe.


    Setup: Ich habe eine Domain ([tt]ddns.example.tld[/tt]) im Panel als "Proxy" auf [tt]http://127.0.0.1:82/liveconfig/hosting/dnsupdate[/tt] angelegt, um sie als eigene DynDNS-Update-URL für Kundenrouter (FritzBox, Ubiquiti UDM oder aber Synology) zu nutzen.


    Beobachtung: Egal was ich als Ziel eintrage (mit oder ohne trailing Slash), im generierten Apache-vHost landet immer ein Slash am Ende:

    Code
    ProxyPass        "/" "http://127.0.0.1:82/liveconfig/hosting/dnsupdate/" upgrade=websocket nocanon
    ProxyPassReverse "/" "http://127.0.0.1:82/liveconfig/hosting/dnsupdate/"


    Das scheint an dieser Stelle in apache.lua zu liegen (Zeilennummer kann je Version leicht abweichen):

    Code
    if string.sub(dst, -2) == '/*' then dst = string.sub(dst, 1, string.len(dst)-1) end
    if string.sub(dst, -1) ~= '/' then dst = dst .. '/' end


    Warum das für mich relevant wurde: Die eigene [tt]/liveconfig/hosting/dnsupdate[/tt]-Route scheint auf eingehende Requests mit trailing Slash ([tt].../dnsupdate/?hostname=...[/tt]) mit 404 zu reagieren, während sie ohne Slash ([tt].../dnsupdate?hostname=...[/tt]) ganz normal mit 401 (fehlende Zugangsdaten) reagiert – also grundsätzlich erreichbar ist.


    Dadurch laufen alle DynDNS-Update-Requests über den Proxy ins Leere, sobald die Domain als Proxy-Typ im Panel verwaltet wird.


    Ich habe das lokal mit curl direkt gegen den internen Port reproduziert (mit und ohne Slash, jeweils identischer Query-String), das Verhalten war reproduzierbar unterschiedlich.


    Frage: Ist das gewolltes Verhalten (und ich sollte die dnsupdate-Route anders/über einen anderen Weg ansprechen), oder ist das eine Lücke zwischen dem generierten Proxy-Ziel und der eigenen Routen-Matching-Logik?


    Falls es tatsächlich ein Zusammenspiel ist, das so nicht beabsichtigt war, würde mich freuen, wenn das mal jemand mit tieferem Einblick in den Code gegenspiegeln könnte – nicht, dass ich da was übersehe.


    Danke schon mal & viele Grüße

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!