У меня есть этот код в nginx:
location / {
add_header 'Access-Control-Allow-Origin' '*';
autoindex on;
set $no_cache "";
if ($request_uri ~* \.m3u8$) {
set $no_cache "1";
}
proxy_no_cache $no_cache;
proxy_cache_bypass $no_cache;
}
Я хочу убедиться, что кеширование работает правильно. Как я могу это сделать?
Я пробовал команду curl, но, похоже, она не дает мне нужной информации:
curl --head -v http://myurl.myloc.com/myfile.m3u8
Я предполагаю, что вы говорите о кешировании страниц Nginx. Я также предполагаю, что вы правильно настроили кеширование страниц.
В этом случае я бы использовал простой подход для проверки отсутствия кеширования
Для проверки кешированных файлов
Один из способов увидеть, что было выполнено в вашей конфигурации Nginx - это использовать модуль headers_more, который вы встроили в Nginx (учебник здесь), затем используйте директиву add_header во всей конфигурации - удалите ее для производства. Похоже, вы уже используете add_header, так что все в порядке. Затем вы можете просто увидеть с помощью "curl -i", какие части вашей конфигурации были выполнены. Например
location / {
add_header 'Access-Control-Allow-Origin' '*';
autoindex on;
set $no_cache "";
if ($request_uri ~* \.m3u8$) {
set $no_cache "1";
add_header EXAMPLE_HEADER "abcd";
}
add_header NO_CACHE $no_cache;
proxy_no_cache $no_cache;
proxy_cache_bypass $no_cache;
}
Curl -i для файла, заканчивающегося на "m3u8", будет включать что-то вроде этого
Заголовок: NO_CACHE 1
в то время как другие сказали бы
Заголовок: NO_CACHE
Это очень простой, но мощный метод, который я часто использую при работе со сложными конфигурациями Nginx.