44 lines
1.5 KiB
Markdown
44 lines
1.5 KiB
Markdown
# nginx caching reverse proxy config
|
|
|
|
This is a good-enough example configuration for a caching reverse proxy for HLS
|
|
live streams.
|
|
|
|
## See it in action
|
|
|
|
```bash
|
|
# Download and compile a local version of nginx
|
|
$ ./build.sh
|
|
|
|
# Run the example configuration
|
|
$ ./run.sh
|
|
```
|
|
|
|
Once running, check out [http://localhost:8080](http://localhost:8080). By The
|
|
example config proxies to `restream.dev`, so you should see a blank player page.
|
|
Feel free to check out the `restream.conf` file and tune it to your liking.
|
|
|
|
The build script doesn't litter your system with random junk. When you're done
|
|
you can just wipe the `./nginx` folder.
|
|
|
|
## Merging with your existing nginx
|
|
|
|
If you don't wanna bother merging the config, you can just use your existing
|
|
nginx to reverse-proxy to this one.
|
|
|
|
If you want to merge it with an existing nginx config, you can copy these
|
|
directives to the `http` block:
|
|
|
|
- `resolver` and `resolver_timeout` (if you plan on using a domain name for the
|
|
upstream)
|
|
- `proxy_cache_path`
|
|
- `upstream`
|
|
|
|
And then you can copy the `server` block in too. If you want to merge it with an
|
|
existing `server`, you can just copy all the `proxy_` directives. Note that
|
|
it'll add caching to the whole `server` by default, so if you don't want that,
|
|
you can change `proxy_cache` to `off`, and then in the `location` blocks where
|
|
you do the reverse proxy, set `proxy_cache` back to `restream_cache`.
|
|
|
|
Feel free to tweak the parameters to fit your needs, but generally the values in
|
|
`restream.conf` should just work alright for caching live streams.
|