Mp4 streaming + X-Accel-Redirect works on dev, fails on prod


How come my Rails app that relies on Nginx to stream mp4 videos to flash
and restricts access with X-Accel-Redirect, works on my dev machine but
fails on the production server?

The config files are 99% the same: dev machine uses mongrel, prod
machine uses passenger.

On the first request I see in my nginx and rails log a request to

Then when I scrub, on my dev machine I see requests to
video.mp4?start=12, etc. But nothing on my production server, the video
restarts from the beginning.

Any idea? I’m sure it’s a stupid thing I’m missing here.

Can someone quickly translate me what’s written in russian on this page:

I’d like to know if it worked for him mp4+X-Accel-Redirect.

Thanks in advance :slight_smile:

It seems that the following was part of the culprit:

location ~ .mp4$ {

By removing the $ sign at the ned of the regexp, I managed to make the
streaming work. This also means the doc written by code-shop is wrong.

Anyway, now I need to tie everything up and combine mp4 with

I currently have the following which does not work:

location ~ /restricted/ {

But I’m not sure it can work out right. As /restricted is the direct
access to the files, which must be prevented. In reality my flash player
gets the file from /restricteds/some/other/path and behind the scenes
Rails will set the appropriate headers.

This would mean that I’m missing a directive that would look like:

location ~ /restricteds/ {
passenger_enabled on;


Am I right?

Or maybe I cannot be done, and in order to secure the downloads I’ll
have to use the secure download module?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs