flv streaming and proxy_pass
Karolis
karolis at pg.lt
Wed Feb 18 20:39:41 MSK 2009
hi list,
I am using nginx / apache combination to stream flv files.
Nginx serves static files and forwards dynamic requests to apache/mod_php.
Request flow would be as follows:
- client requests some file
- nginx rewrites the filename to a local cache dir
- if file is found in the cache dir, nginx sends the file
- if file is not found, then request is passed to apache, which will
create the file and send the contents.
For flv files we want flv streaming.
The rules I am using to make this work are as follows:
# Map request url to cache dir
location /dbfile {
rewrite "^/dbfile/([0-9]{3})([0-9]{3})([0-9]{3})/(.*)$"
/cache/$1/$2/$1$2$3__$4 last;
}
# Forward PHP requests to apache, in case we don't have cache yet
location ~ ^/cache/ {
if (!-f $request_filename) {
proxy_pass http://127.0.0.1:8080;
break;
}
}
# Handle FLV streaming
location ~ ^/cache/(.*)\.flv$ { flv; }
In this configuration, proxy_pass works, but flv streaming doesn't.
If I move FLV "location" directive above proxy_pass, then flv will work,
and proxy_pass won't.
How do I get them both to work together? I don't want streaming of
proxied requests, I only want to
flv-stream the files that are on local filesystem.
Any help?
thanks
Karolis
More information about the nginx
mailing list