Здравствуйте! Максим,спасибо за быстрый ответ! Может быть это указать в документации? Пока что процитированная часть документации, как мне кажется, прямо противоречит этому поведению.
С уважением, Иван. В письме от 20 апреля 2017 21:08:33 пользователь Maxim Dounin написал: > Hello! > > On Thu, Apr 20, 2017 at 08:17:07PM +0300, Иван wrote: > > Здравствуйте! > > > > Есть конфиг бэкэнда, вот его кусочек: > > > > location ~ \.m3u8$ { > > expires -1; > > add_header "X-Accel-Expires" "100" > > } > > > > Как следует из русской и английской документации: > > http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_valid > > (кстати, как делать красивые короткие ссылки на документацию, которыми > > оперирует в этом списке рассылки команда nginx?) > > > > > Если в заголовке нет поля “X-Accel-Expires”, параметры кэширования > > > определяются по полям заголовка “Expires” или “Cache-Control”. > > > > То есть можно предположить, что приоритет у X-Accel-Expires. > > Но нет. Как показывает моя практика и, например, этот вопрос: > > https://serverfault.com/questions/641367/nginx-using-x-accel-expires-with-> > > > cache-control > > > > Приоритет имеет Cache-control. То есть в такой конфигурации на фронтэнде: > > > > location ^~ /video/ { > > > > proxy_buffer_size 16k; > > proxy_buffers 32 16k; > > > > proxy_cache video; > > proxy_cache_lock on; > > > > proxy_cache_use_stale updating; > > proxy_cache_key "$proxy_host$uri"; > > > > proxy_pass http://backend; > > > > } > > > > m3u8 файлы, проходящие через этот локейшен на приведенный выше локейшен > > бэкэнда кешироваться не будут. Ситуацию спасает только > > proxy_ignore_headers Expires Cache-Control; > > > > Подскажите, пожалуйста, где ошибка: в nginx, документации или моём > > понимании того или другого? > > Текущая реализация такова, что если до заголовка X-Accel-Expires > встретится заголовок Cache-Control или Expires, запрещающий > кеширование совсем, то кеширование будет запрещено. > > То же самое с Cache-Control vs. Expires: в соответствии со > стандартом HTTP/1.1 заголовок Cache-Control имеет приоритет, но > если до него в ответе был заголовок Expires, полностью запрещающий > кеширование, то кеширование будет запрещено. _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru