streaming-cdn/README.md

40 lines
1.6 KiB
Markdown
Raw Normal View History

2020-07-25 14:41:51 +00:00
# streaming-cdn
Config-Dateien für ein Streaming-CDN au Lukas
2020-07-25 14:53:15 +00:00
2020-07-25 14:50:33 +00:00
Im Prinzip einfach nur ein verteiltes serving der ganzen HLS-Dateien, sonst nix besonderes
Gundsätzlicher Aufbau
```mermaid
graph TD;
Viewer-->|request|Load_Balancer;
Load_Balancer-->|ip|Viewer;
Viewer-->|request|Node1;
Node1-->Streaming_Server;
Node2-->Streaming_Server;
Streaming_Server-->|content|Node1;
Node1-->|caching|Node1;
Node1-->|serve cached content|Viewer;
```
2020-07-25 14:53:15 +00:00
Der Viewer bekommt von dem Load-Balancer eine Node zugewiesen, bei der er dann den Content anfragt, diese cached die HLS Fragmente (nicht das m3u8 Index File) und served diese dann aus dem cache.
Der Streaming Server wird damit pro Node jeweils nur einmal getroffen und nicht dauerhaft belastet.
## Installation
### Load Balancer
2020-07-25 14:58:37 +00:00
1. load_balancer.conf in nginx.conf umbenennen und damit nginx.conf ersetzen.
2020-07-25 14:59:00 +00:00
- Ggf. noch aus sicherheitsgründen nen server-name setzen, ssl-certs aktivieren und den port ändern.
2020-07-25 14:58:37 +00:00
2. URLs der Nodes in die Liste eintragen.
### Node
1. node.conf kopieren und nginx.conf damit ersetzen.
- ggf. auch server-name, ssl-certs und port ändern.
2. Streaming-server ändern.
3. `/var/cache/hls` und `/var/cache/dash` erstellen (`mkdir -p`) und dann berechtigungen zum nginx-user ändern (`chown -R www-data /var/cache/hls`)
### Streaming-Server
Nur eine Beispiel-config, wichtig ist, dass die Files am Ende da geserved werden, wo die Nodes sie erwarten.
Ggf. beim Deployment h264_nvenc in libx264 tauschen, falls keine nvidia-grafikkarte vorhanden.