der Dienst „Photos“ von der Synology baut eine Websocket Verbindung zum Backend auf, um diese über den Reverse Proxy durchzureichen geht es in dieser Anleitung. Die Synology direkt mit dem Internet zu verbinden ist einfach keine gute Idee.
Der Testaufbau wurde durchgeführt mit:
- Apache stable,now 2.4.38-3
- Synology DSM 7.0-41890
- Synology Photos 1.0.0-0186
Apache Reverse Proxy
für die Nutzung von Photos muss nicht zwingend WebSocket genutzt werden, es geht auch mit ProxyPass und ProxyPassReverse, es geht dann nur kein Push von Synology Photos an den Client.
Ich habe nur den Ausschnitt vom WebSocket in der Anleitung und es ist die verschlüsselte Verbindung.
ws = unverschlüsselt
wss = verschlüsselt
Module die geladen sein müssen
/usr/sbin/a2enmod proxy_wstunnel
/usr/sbin/a2enmod proxy
/usr/sbin/a2enmod proxy_http
Wenn kein WebSocket geöffnet ist kann der Fehler mit z.B. Firefox im Web-Entwickler angezeigt werden.
Einstellungen Reverse Proxy
ProxyPass /bilder https://IP-Adresse-Synology:Port/photo
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "wss://IP-Adresse-Synology:Port/$1" [P,L]
Apache restart
systemctl restart apache2
Die Verbindung sollte jetzt mit WebSocket aufgebaut werden.
Geräte IP-Adresse übergeben
mit dieser Einstellung wird in der Synology die IP-Adresse vom Reverse Proxy angezeigt, wenn die IP-Adresse vom Gerät an die Synology übergeben werden soll, muss die Einstellung noch erweitert werden.
Modul das geladen werden muss
/usr/sbin/a2enmod remoteip
und die Konfiguration muss erweitert werden
RemoteIPHeader X-Forwarded-For
Apache restart
systemctl restart apache2