Hallo zusammen,
ich bin schier am verzweifeln. Ich bekomme es einfach nicht hin Nextcloud Talk hinter einem IIS Proxy ans laufen zu kriegen.
ZunĂ€chst hatte ich das Problem, dass bei der Anmeldung der âZugriff gewĂ€hrenâ Button in der App ohne Funktion war. Das konnte ich mit Hilfe von dieser Anleitung lösen: https://docs.microsoft.com/de-de/archive/blogs/friis/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world-apps
Nun kann ich auf den Button klicken, in der Nextcloud selbst wird auch unter Sicherheit ein neues GerĂ€t registriert. In der App dreht sich dann ewig der Kreis und wird quittiert mit der Meldung âNextcloud Talk App nicht auf dem Server installiert, Abbruchâ. Irgendwo scheint eine Antwort zu fehlen, die von der Nextcloud nicht durch den Proxy ans GerĂ€t zurĂŒckgeschickt wird. Das interessante: Wenn ich eine direkte Portweiterleitung an meine Nextcloud ĂŒber einen anderen Port (444) mache, kann ich mich anmelden, Talk selbst lĂ€uft also ordentlich und ist auch installiert.
Hier meine Konfiguration:
Server: Dell Tower, Nextcloud in Hyper-V Umgebung
Haupbetriebssystem: Windows Server 2019, Version 1809 Build 17763.2928
Internet Information Services Version 10.0-17763.1
Nextcloud Version 24.0.1 auf Debian bullseye 11.3 und Apache
Talk App 14.0.2 auf einem Samsung Galaxy A51 mit Android 12
PHP Version 8.0
Datenbank MariaDB
Router FritzBox 7590 mit neuster Software
Das Problem war noch nie gelöst. Zuletzt habe ich die unzĂ€hligen Outbound-Rules im IIS angelegt, daher poste ich mal meine Config-Datei vom IIS, ich vermute dort den Fehler. Gibt es noch weitere Protokolle auĂer Java, href, src links, die evtl. umgeschrieben werden mĂŒssen?
In den Logs habe ich geschaut, Nextcloud und Apache liefern keine Fehler. Im IIS und Windows Server auch keine EintrÀge, die auf einen Fehler hindeuten. Ich weià nicht mehr wo ich noch suchen soll -.- Hoffentlich kann mir jemand helfen! Ich bin gerne Bereit zu teste und zu untersuchen, ich habe aber keinen Ansatz mehr wo ich nachschauen sollte. Wenn Informationen fehlen bitte kurz Bescheid geben!
web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<outboundRules>
<clear />
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://LocalIP/(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true" />
<action type="Rewrite" value="http{R:1}://mydomain.com/{R:2}" />
</rule>
<rule name="RestoreAcceptEncoding" preCondition="NeedsRestoringAcceptEncoding" enabled="true">
<match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true" />
<action type="Rewrite" value="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" />
</rule>
<rule name="aTag" preCondition="NeedsRestoringAcceptEncoding" enabled="true">
<match filterByTags="None" pattern="href=(.*?)https://LocalIP/(.*?)\s" />
<action type="Rewrite" value="href={R:1}https://mydomain.com/{R:2}" />
</rule>
<rule name="action" preCondition="NeedsRestoringAcceptEncoding" enabled="true">
<match filterByTags="None" pattern="action=(.*?)http(s)?://LocalIP/(.*?)\\" />
<action type="Rewrite" value="href={R:1}https://mydomain.com/{R:2}" />
</rule>
<rule name="ReverseProxyOutboundRule2" preCondition="ResponseIsHtml2" enabled="false">
<match filterByTags="A, Form, Img" pattern="^http(s)?://LocalIP/(.*)" />
<action type="Rewrite" value="http{R:1}://mydomain.com/{R:2}" />
</rule>
<rule name="SRC" preCondition="NeedsRestoringAcceptEncoding">
<match filterByTags="None" pattern="src=(.*?)https://LocalIP/(.*?)" />
<action type="Rewrite" value="src={R:1}https://mydomain.com/{R:2}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/(.+)" />
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
<preCondition name="NeedsRestoringAcceptEncoding">
<add input="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" pattern=".+" />
</preCondition>
<preCondition name="ResponseIsHtml2">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
<rules>
<clear />
<rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<serverVariables>
<set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
<action type="Rewrite" url="http://LocalIP/{R:1}" />
</rule>
<rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>