Range-requests unsupported in unit
Nginx Unit does not support the Range header and thus does not support range requests. Unit does not intend on ever supporting range requests, hence this webserver is not suited for castopod. The end user problem arising from this is that apple podcasts does not work which does a small range request to check if it accepts the podcast or not (as is already handled in the castopod codebase).
Example GET request to `https://podcasts.darmstadt.social/media/podcasts/thinkpadmuseum/1707681819_6bd3cc0b7c33e67952b4.mp3`
```bash
$ curl -i -L https://podcasts.darmstadt.social/media/podcasts/thinkpadmuseum/1707681819_6bd3cc0b7c33e67952b4.mp3 -H "Range: 0-1023"
HTTP/2 200
access-control-allow-origin: *
content-type: audio/mpeg
date: Mon, 26 Feb 2024 21:33:20 GMT
etag: "65d20d2c-2be6f8d"
last-modified: Sun, 18 Feb 2024 13:59:08 GMT
referrer-policy: same-origin
server: Unit/1.31.1
strict-transport-security: max-age=63072000
x-content-type-options: nosniff
x-frame-options: sameorigin
content-length: 46034829
```
The request should return a `206` instead of a `200` and not serve the whole file.
HEAD request:
```bash
$ curl -I -L https://podcasts.darmstadt.social/media/podcasts/thinkpadmuseum/1707681819_6bd3cc0b7c33e67952b4.mp3
HTTP/2 200
access-control-allow-origin: *
content-type: audio/mpeg
date: Mon, 26 Feb 2024 21:42:02 GMT
etag: "65d20d2c-2be6f8d"
last-modified: Sun, 18 Feb 2024 13:59:08 GMT
referrer-policy: same-origin
server: Unit/1.31.1
strict-transport-security: max-age=63072000
x-content-type-options: nosniff
x-frame-options: sameorigin
content-length: 46034829
```
This works perfectly fine for non-docker setups. The requests do not change when done against the localhost:8000 (without further proxying before unit).
See upstream issue https://github.com/nginx/unit/issues/1011
issue