Page 1 of 1

apache reverse proxy - flash player not working

PostPosted: Tue Dec 01, 2015 10:07 am
by tata-greis
Hi all!

I´m trying to get mediabrowser working with an apache2 (2.4) reverse proxy.
My setup is as follows:

  Code:
ProxyRequests     off
ProxyPreserveHost off

ProxyPass /mediabrowser/ http://localhost:23424/mediabrowser/
ProxyPass /cds/ http://localhost:23424/cds/

<Location /mediabrowser/>
   SSLRequireSSL
   Order allow,deny
   allow from all

   ProxyPass http://localhost:23424/mediabrowser/
   ProxyPassReverse http://localhost:23424/mediabrowser/
</Location>

<Location /cds/>
   SSLRequireSSL
   Order allow,deny
   allow from all

   ProxyPass http://localhost:23424/cds/
   ProxyPassReverse http://localhost:23424/cds/
</Location>


When I bypass the reverse proxy (connecting to localhost:23424), everything runs as expected in all browsers I tested.
Using the reverse proxy, HTML, JavaScript and whatever stuff display fine, but the flash player (flowplayer) does not display, at least in most scenarios (see below).

Firefox 42 & Crome 46 - access via https apache reverse proxy
    login to mediabrowser works
    menus and viewing pictures are working
    videos and music just display a black box for the flash player

IE 11 from my notebook - access via https apache reverse proxy
    login to mediabrowser works
    menus and viewing pictures are working
    videos and music display the flash player fully operational

IE 11 from my desktop - access via https apache reverse proxy
    login to mediabrowser works
    menus and viewing pictures are working
    videos and music just display a black box for the flash player

I was not able to find out a difference in the two IE setups. All installations use the most up to date flash player.

Analyzing the apache logs and using HTTPHeaders in firefox showed the following:

Firefox via https and apache reverse proxy (flash player not working)
  Code:
https://www.external.ip/mediabrowser/assets/flowplayer-3.2.16.swf

GET /mediabrowser/assets/flowplayer-3.2.16.swf HTTP/1.1
Host: www.external.ip
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-DE,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: https://www.external.ip/mediabrowser/
Cookie: sessionLang=en; UserPref=pm_power_unit%3Dbtus; irc=last%3Dirc
X-ClickOnceSupport: (.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Connection: keep-alive

HTTP/1.1 200 OK
Date: Mon, 23 Nov 2015 14:24:58 GMT
Server: Restlet-Framework/2.2
Content-Length: 133023
Content-Type: application/octet-stream
Cache-Control: private, max-age=36000
Vary: Accept-Charset,Accept-Encoding,Accept-Language,Accept
x-content-type-options: nosniff
X-Frame-Options: sameorigin
Keep-Alive: timeout=15, max=72
Connection: Keep-Alive


Firefox directly accessing via localhost:23424 (flash player working)
  Code:
http://nas2:23424/mediabrowser/assets/flowplayer-3.2.16.swf

GET /mediabrowser/assets/flowplayer-3.2.16.swf HTTP/1.1
Host: nas2:23424
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-DE,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://nas2:23424/mediabrowser/
Cookie: statuslist=true; scroll=0:0;
X-ClickOnceSupport: (.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Connection: keep-alive

HTTP/1.1 200 OK
Content-Length: 133023
Content-Type: application/octet-stream
Cache-Control: private, max-age=36000
Date: Mon, 30 Nov 2015 15:19:02 GMT
Server: Restlet-Framework/2.2
Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
Connection: keep-alive
----------------------------------------------------------
http://nas2:23424/mediabrowser/assets/flowplayer.controls-3.2.15.swf

GET /mediabrowser/assets/flowplayer.controls-3.2.15.swf HTTP/1.1
Host: nas2:23424
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-DE,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://nas2:23424/mediabrowser/assets/flowplayer-3.2.16.swf
Cookie: statuslist=true; scroll=0:0;
X-ClickOnceSupport: (.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Connection: keep-alive

HTTP/1.1 200 OK
Content-Length: 38353
Content-Type: application/octet-stream
Cache-Control: private, max-age=36000
Date: Mon, 30 Nov 2015 15:19:02 GMT
Server: Restlet-Framework/2.2
Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
Connection: keep-alive
----------------------------------------------------------
http://nas2:23424/mediabrowser/assets/flowplayer.menu-3.2.12.swf

GET /mediabrowser/assets/flowplayer.menu-3.2.12.swf HTTP/1.1
Host: nas2:23424
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-DE,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://nas2:23424/mediabrowser/assets/flowplayer-3.2.16.swf
Cookie: statuslist=true; scroll=0:0;
X-ClickOnceSupport: (.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Connection: keep-alive

HTTP/1.1 200 OK
Content-Length: 23646
Content-Type: application/octet-stream
Cache-Control: private, max-age=36000
Date: Mon, 30 Nov 2015 15:19:03 GMT
Server: Restlet-Framework/2.2
Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
Connection: keep-alive
----------------------------------------------------------
http://nas2:23424/mediabrowser/assets/flowplayer.serviiostreaming-1.0.10.swf

GET /mediabrowser/assets/flowplayer.serviiostreaming-1.0.10.swf HTTP/1.1
Host: nas2:23424
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-DE,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://nas2:23424/mediabrowser/assets/flowplayer-3.2.16.swf
Cookie: statuslist=true; scroll=0:0;
X-ClickOnceSupport: (.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Connection: keep-alive

HTTP/1.1 200 OK
Content-Length: 3600
Content-Type: application/octet-stream
Cache-Control: private, max-age=36000
Date: Mon, 30 Nov 2015 15:19:03 GMT
Server: Restlet-Framework/2.2
Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
Connection: keep-alive
----------------------------------------------------------
http://nas2:23424/mediabrowser/assets/flowplayer.bitrateselect-3.2.13.swf

GET /mediabrowser/assets/flowplayer.bitrateselect-3.2.13.swf HTTP/1.1
Host: nas2:23424
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-DE,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://nas2:23424/mediabrowser/assets/flowplayer-3.2.16.swf
Cookie: statuslist=true; scroll=0:0;
X-ClickOnceSupport: (.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
Connection: keep-alive

HTTP/1.1 200 OK
Content-Length: 33357
Content-Type: application/octet-stream
Cache-Control: private, max-age=36000
Date: Mon, 30 Nov 2015 15:19:03 GMT
Server: Restlet-Framework/2.2
Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
Connection: keep-alive


I´d guess that flowplayer-3.2.16.swf is loading additional swf files to become a fully working player. This doesn´t work over the proxy approach. As I´m not a flash guy, futher debugging is not possible for me.
I also checked, that SSL / https is not causing the issue. Even if I setup my proxy with plain http, the same problem occurs.

Does anybody have a working setup with Serviio 1.5.2 via an apache reverse proxy that allows to use the flash player?

TIA & best regards,
Christian

Re: apache reverse proxy - flash player not working

PostPosted: Wed Dec 02, 2015 10:55 pm
by zip
is the downloaded .swf file exactly the same, byte-by-byte, when downloaded directly and over the proxy? maybe it get's damaged somehow

Re: apache reverse proxy - flash player not working

PostPosted: Thu Dec 03, 2015 11:51 am
by tata-greis
I checked both swf files, the md5 hash is identical (28988b912da5ef1d171ded2e22c41338).

Re: apache reverse proxy - flash player not working

PostPosted: Fri Dec 04, 2015 8:08 pm
by zip
Also check if there are any JavaScript errors in the browser's developer console.

Re: apache reverse proxy - flash player not working

PostPosted: Sat Dec 05, 2015 11:19 am
by tata-greis
Only one warning:

  Code:
12:13:51.100 Synchrone XMLHttpRequests am Haupt-Thread sollte nicht mehr verwendet werden, weil es nachteilige Effekte für das Erlebnis der Endbenutzer hat. Für weitere Hilfe siehe http://xhr.spec.whatwg.org/1 MediaBrowser-1.5.1-4.js:9:0


In English: Syncronous XMLHttpRequests in the main thread should no longer be used due to negative effects on the end user experience.

BUT, this warning also occures when I access the mediabrowser directly (and the flowplayer works as exptected), so I doubt that it may be the reason for the proxying issue.

Re: apache reverse proxy - flash player not working

PostPosted: Wed Dec 09, 2015 7:08 am
by tata-greis
Hey guys, this has more than 120 views now. Are there any users out there who use Serviio behind an Apache proxy? I´d be very keen if I face a general problem or if it is an issue with my specific setup.
Does it work for you or do you face similar issues?


@zip: Many thanks for your support. I really appreciate it! If I can help with futher logs etc. pls let me know.