Дифференцировать поведение nginx в зависимости от URL-адреса
-
22-08-2019 - |
Вопрос
У меня есть приложение Django, и я использую nginx для обслуживания статического контента.К сожалению, все зарегистрированные типы MIME отображаются в клиентском браузере, а хотелось бы дать возможность скачивать тот же контент, наряду с обычным поведением.Скажем, у меня есть файл JPEG под /media/images/image01.jpg
и я хочу, чтобы nginx обслуживал этот файл обычным способом, со стандартными image/jpeg
заголовок, но дополнительно я хочу одинаковый образ, который будет обслуживаться nginx с помощью content-disposition: attachment
(эффективно принудительно загружая контент) при доступе, например, /downloads/images/image01.jpg
.Кто-нибудь может предложить решение?
Решение
Убедитесь, что у вас скомпилирован http_headers_module.(должно быть по умолчанию, если его нет в ядре)
Используйте «вложение для размещения содержимого add_header»;
Я рекомендую использовать URL-адрес типа «/download?file=/downloads/images/image01.jpg» в сочетании с правилом перезаписи, чтобы избежать некоторых досадных ошибок в дальнейшем.