У меня есть настройка сервера Nginx (openresty) с большими файлами.
Когда клиенту нужен файл диапазона, Nginx отправляет обратно 200 вместо 206.
Это пример моего теста на завиток:
curl -v -I -r 0- -X ПОЛУЧИТЬ http://172.29.22.11/myBigFile.bin
* Попытка 172.29.22.11:80...
* Установлен TCP_NODELAY
* Подключено к 172.29.22.11 (172.29.22.11) порту 80 (#0)
> ПОЛУЧИТЬ /myBigFile.bin HTTP/1.1
> Хост: 172.29.22.11
> Диапазон: байты=0-
> Пользовательский агент: curl/7.68.0
> Принять: */*
>
* Отметить пакет как не поддерживающий многоразовое использование
< HTTP/1.1 200 ОК
HTTP/1.1 200 ОК
< Transfer-Encoding: фрагментировано
Передача-кодирование: по частям
< Соединение: поддержание активности
Соединение: Keep-alive
< Истекает: ср, 21 декабря 2022 г., 09:10:00 по Гринвичу
Истекает: ср, 21 декабря 2022 г., 09:10:00 по Гринвичу.
<Кэш-контроль: max-age=31536000
Кэш-контроль: max-age=31536000
< Access-Control-Allow-Headers: *
Заголовки Access-Control-Allow: *
<Доступ-Контроль-Разрешить-Происхождение: *
Доступ-Контроль-Разрешить-Происхождение: *
< myCacheStatus: HIT
myCacheStatus: HIT
< Прагма: общедоступная
Прагма: общедоступная
<Кэш-Контроль: общедоступный
Кэш-Контроль: общедоступный
<
* Обнаружено превышение: превышение = 448 url =/myBigFile.bin A (тело нулевой длины)
* Соединение №0 с хостом 172.29.22.11 осталось нетронутым
Как я могу определить, чтобы Nginx возвращал правильное значение 206?
----- Добавляю свою конфигурацию -----
место расположения / {
внутренний;
прокси_кэш мой_кэш;
proxy_cache_key $uri;
# установить время проверки для 200 респинов -> до 7 дней
proxy_cache_valid 200 7 дней;
# Очистить флаги, которые я не хочу
more_clear_headers 'Access-Control-Allow-Headers';
more_clear_headers 'Access-Control-Allow-Origin';
more_clear_headers 'доступ*';
more_clear_headers 'расположение содержимого';
more_clear_headers 'Дата';
more_clear_headers 'x-proxy-cache';
more_clear_headers 'Сервер';
# добавить заголовки для обработки CORS
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Origin '*';
# для уменьшения пропускной способности я использую сжатие
gzip включен;
# настраиваем прокси и даем ему команду считывать, даже если нет Cache-Control
proxy_ignore_headers X-Accel-Expires Expires Cache-Control;
proxy_cache_lock включен;
proxy_cache_lock_timeout 0 с;
proxy_cache_lock_age 200 с;
обновление proxy_cache_use_stale;
# запустить обратный прокси
прокси_пароль http://0.0.0.0:3000;
# установить локальное хранение на стороне клиента в настоящее время мы начнем через 365 дней
истекает через 365 дней;
add_header Публичный прагма;
add_header Cache-Control "public";
}