Probleme in Firefox mit der Inline-Kommentarfunktion und dem Editor in Confluence hinter einem Reverse-Proxy
Ich habe nach dem letzten Update von Confluence in Firefox einiges an Fehlverhalten (Probleme beim Laden, doppelte Inhalte) beim Benutzen des Editors bzw. der Inline-Kommentar-Funktion festgestellt (Anmerkung: Interessanterweise traten die Probleme unter Chrome und Safari nicht auf).
Die Confluence-Installation liegt hinter einem Apache Reverse-Proxy und ich habe mir deshalb vor allem diese Konfiguration näher angesehen und schlussendlich als Problem identifiziert.
Confluence für die Verwendung hinter einem Reverse-Proxy konfigurieren
Wer Confluence hinter einem Revers-Proxy betreibt, muss in der Konfigurationsdatei server.xml (bei der Installation im vorgeschlagenen Standardpfad unter /opt/atlassian/confluence/conf/ zu finden) den richtigen Connector konfigurieren. Dazu sind in der Konfigurationsdatei bereits entsprechende Konfigurationsabschnitte für verschiedene Arten an Verbindungen auskommentiert enthalten. Wer wie ich für die Ansprache von Confluence durch den Reverse-Proxy HTTPS nutzt, muss den unten stehenden Block aktivieren und darf vor allem nicht darauf vergessen im Attribut proxyName die korrekte URL einzugeben, über welche Confluence schlussendlich für den Endnutzer erreichbar ist.
<!-- ============================================================================================================== HTTPS - Proxying Confluence via Apache or Nginx over HTTPS If you're proxying traffic to Confluence over HTTPS, uncomment the connector below and comment out the others. Make sure you provide the right information for proxyName and proxyPort. For more information see: Apache - https://confluence.atlassian.com/x/PTT3MQ nginx - https://confluence.atlassian.com/x/cNIvMw ============================================================================================================== --> <Connector port="8090" connectionTimeout="20000" redirectPort="8443" maxThreads="48" minSpareThreads="10" enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" proxyName="confluence.example.com" proxyPort="443"/>
Der bis dato aktivierte Standard-Connector für die direkte Verbindung ohne Proxy sollte dann auch auskommentiert werden:
<!-- ============================================================================================================== DEFAULT - Direct connector with no proxy, for unproxied HTTP access to Confluence. If using a http/https proxy, comment out this connector. ============================================================================================================== --> <!-- <Connector port="8090" connectionTimeout="20000" redirectPort="8443" maxThreads="48" minSpareThreads="10" enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8" protocol="org.apache.coyote.http11.Http11NioProtocol"/> -->
Wichtig ist zu wissen, dass bei jedem Update von Confluence genau diese Konfigurationsdatei zurückgesetzt wird und daher nach jedem Update diese Konfiguration erneut durchgeführt werden muss.
Reverse-Proxy konfigurieren
Die Revers-Proxy-Konfiguration für Apache (mod_proxy) bedarf dann noch zusätzlich einiger Kniffe für ein Modul Namens synchrony, dass von Confluence für die Collaboration-Funktion des Editors benötigt wird.
ProxyRequests Off ProxyPreserveHost On RewriteEngine On RewriteCond %{REQUEST_URI} !^/synchrony RewriteRule ^/(.*) http://confluence.local:8090/$1 [P] ProxyPass /synchrony http://confluence.local:8091/synchrony <Location /synchrony> RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] RewriteRule .* ws://confluence.local:8091%{REQUEST_URI} [P] </Location> ProxyPass / http://confluence.local:8090/ ProxyPassReverse / http://confluence.local:8090/