Ant Media Server mit Apache Reverse Proxy

Ich nutze schon eine ganze Weile die Communtiy Edition von Ant Media Server. Der Server wird normalerweise via HTTP an Port 5080 angesprochen. Prinzipiell ist HTTPS mit Let’s Encrypt auch möglich, allerdings nur, wenn nicht schon ein Webserver auf Port 80 aktiv ist, was für meine Anwendnug nicht praktibel ist. Statt dessen habe ich einen Reverse Proxy in Apache konfiguriert.

Nach einem der letzten Updates gab es aber ein unerwartetes Problem: der Live-Stream war noch funktionsfähig, aber eine Anmeldung im Dashboard wurde mit HTTP 403 quittiert. Die Lösung dafür ist, in der Konfiguration des Proxy die Option ProxyAddHeaders off zu ergänzen. Offenbar verweigert Ant Media den Zugriff auf das Dashboard, wenn dafür ein Proxy genutzt wird. Die neue Konfiguration sieht jetzt so aus:

RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://localhost:5080/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) http://localhost:5080/$1 [P,L]
ProxyAddHeaders off
ProxyPass / http://localhost:5080/
ProxyPassReverse / http://localhost:5080/

Auf diese Weise ist sowohl das Dashboard wie auch Live-Streams abrufbar. Es ist nur zu beachen, dass Ant Media dadurch alle eingehenen Anfragen so betrachtet, als kämen sie von 127.0.0.1 und nicht von der IP-Adresse des Clients.

Update 2022-08-29

Die Ursache für dieses Verhalten ist jetzt auch klar:

Ant Media unterstützt kein IPv6 – zumindest die Community-Version, die ich aktuell nutze.  Das kann man leicht prüfen, indem man für die Maschine, auf der Ant Media läuft, einen FQDN einrichtet, der nur einen AAAA-Record hat und dann versucht, Ant Media über diesen Namen und Port 5080 anzusprechen. In diesem Fall ist keine Verbindung möglich, da Ant Media keinen Listener für IPv6 hat, sondern nur für IPv4.

Wenn man einen Proxy verwendet werden Verbindungsanfragen über IPv6 vom Proxy behandelt und dann an Ant Media über IPv4 weitergeleitet. Diese haben dann aber in den Headern als Quelle eine IPv6-Adresse angegeben, die Ant Media nicht als zulässige IPv4-Adresse interpretieren kann und daher die Anfrage ablehnt.

Durch den Zusatz ProxyAddHeaders off wird die Weitergabe der IPv6-Quelladresse in den Headern unterbunden, so dass für Ant Media alle Anfragen als IPv4 von der Adresse 127.0.0.1 kommen, die akzeptiert wird.

Update 2022-09-10

Das Problem ist lässt sich durch eine Konfigurationsanpassung beheben und wird vermutlich in einem der nächsten Updates von Ant Media beseitigt sein – siehe dazu Ant Media Server mit IPv6 betreiben.

Öffentlichen Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Dies ist kein Kontaktformular! Wenn Du mir eine persönliche Nachricht schreiben möchtest, benutze die E-Mail-Adresse in meinem Impressum.

Du kannst die folgenden HTML-Tags im Kommentar verwenden:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>