Hallo zusammen,
ich habe meine DS/Surveillance Station hinter einem Apache Reverse Proxy. Grundsätzlich funktioniert die Konfiguration, allerdings wohl nur in einer Art Fallback-Modus.
Mein Problem ist, dass von den mobilen Endgeräten (iPad/iPhone) der Verbindungsaufbau zu einem Kamera-Stream ewig dauert.
Versuche ich das Ganze über Browser, kann er gar keine Verbindung aufbauen.
Mache ich eine direkt Portfreigabe auf die DS, dann funktioniert es einwandfrei und blitzschnell, es muss also der Proxy sein.
Meine Vermutung ist aktuell, dass irgendein besonderes Format/Protokoll des Streams nicht durchgereicht wird (RSTP oder ähnliches).
Die Mobilgeräte scheinen dann nach Timeout in irgendeinen anderen Übertragungsmodus zu gehen, die Browser scheinen das nicht zu können.
Die Apache-Logs sind für mich nicht sonderlich aussagekräftig, das einzige, was mir aufgefallen sind, waren einige Error 502:
"GET /ss_message_task/?ClientType=webclient&blWriteBinary=true HTTP/1.1" 502 11939 "-" "Synology-DS_cam_5.7.0_iPad_Pro...
"GET /ss_webstream_task/?method=MixStream&stmSrc=0&blAudio=true&dsId=0&id=4&devType=1&profile=0 HTTP/1.1" 502 11939 "-" "Synology-DS_cam_5.7.0_iPad_Pro...
Könntet ihr bitte mal einen Blick auf meine (etwas grob aus Google-Ergebnissen zusammengeschusterte) Apache-Config werfen und eure Gedanken dazu mit mir teilen?
Vielen Dank im Voraus!
ich habe meine DS/Surveillance Station hinter einem Apache Reverse Proxy. Grundsätzlich funktioniert die Konfiguration, allerdings wohl nur in einer Art Fallback-Modus.
Mein Problem ist, dass von den mobilen Endgeräten (iPad/iPhone) der Verbindungsaufbau zu einem Kamera-Stream ewig dauert.
Versuche ich das Ganze über Browser, kann er gar keine Verbindung aufbauen.
Mache ich eine direkt Portfreigabe auf die DS, dann funktioniert es einwandfrei und blitzschnell, es muss also der Proxy sein.
Meine Vermutung ist aktuell, dass irgendein besonderes Format/Protokoll des Streams nicht durchgereicht wird (RSTP oder ähnliches).
Die Mobilgeräte scheinen dann nach Timeout in irgendeinen anderen Übertragungsmodus zu gehen, die Browser scheinen das nicht zu können.
Die Apache-Logs sind für mich nicht sonderlich aussagekräftig, das einzige, was mir aufgefallen sind, waren einige Error 502:
"GET /ss_message_task/?ClientType=webclient&blWriteBinary=true HTTP/1.1" 502 11939 "-" "Synology-DS_cam_5.7.0_iPad_Pro...
"GET /ss_webstream_task/?method=MixStream&stmSrc=0&blAudio=true&dsId=0&id=4&devType=1&profile=0 HTTP/1.1" 502 11939 "-" "Synology-DS_cam_5.7.0_iPad_Pro...
Könntet ihr bitte mal einen Blick auf meine (etwas grob aus Google-Ergebnissen zusammengeschusterte) Apache-Config werfen und eure Gedanken dazu mit mir teilen?
Vielen Dank im Voraus!
##### Synology DS118 Surveillance #####
# https://www.serverlab.ca/tutorials/linux/web-servers-linux/how-to-reverse-proxy-websockets-with-apache-2-4/
[I]<VirtualHost *:80>
ServerName xxx.yyy.com
ServerAlias www.xxx.yyy.com
Proxypass "/" "http://192.168.1.xxx:5000/"
RewriteEngine on
RewriteCond ${HTTP:Upgrade} websocket [NC]
RewriteCond ${HTTP:Connection} upgrade [NC]
RewriteRule .* "ws://192.168.1.xxx:5000/$1" [P,L]
ProxypassReverse "/" "http://192.168.1.xxx:5000/"
</VirtualHost>
<VirtualHost *:443>
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
ServerName xxx.yyy.com
ServerAlias www.xxx.yyy.com
Proxypass "/" "https://192.168.1.xxx:5001/"
RewriteEngine on
RewriteCond ${HTTP:Upgrade} websocket [NC]
RewriteCond ${HTTP:Connection} upgrade [NC]
RewriteRule .* "wss://192.168.1.xxx:5001/$1" [P,L]
ProxypassReverse "/" "https://192.168.1.xxx:5001/"
SSLEngine On
SSLCertificateFile yyy.com-crt.pem
SSLCertificateKeyFile yyy.com-key.pem
SSLCertificateChainFile yyy.com-chain-only.pem
# Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
</VirtualHost>[/I]