2016-05-19 11 views
1

Я ищу, чтобы расширить типы mime в моей конфигурации Nginx.Расширение типов mime на сервере Nginx, развернутом шеф-поваром

Я узнал, что я мог бы, в принципе, либо отредактировать файл mime.types, или после включения mime.types в http блоке конфигурации вы можете следовать include mime.types с types = {...}, чтобы добавить больше типов а-ля this answer ,

Поскольку я настраиваю Nginx с шеф-поваром, у меня есть шаблонная конфигурация в папке с поддержкой сайтов, которая включена в конфигурацию Nginx. Я бы предпочел не создавать шаблон nginx config или mime.types, поэтому я надеюсь, что его можно будет найти в файле конфигурации с поддержкой сайтов.

В том же духе, что и связанный с ним вопрос, могу ли я включить это в файл с поддержкой сайтов, чтобы получить тот же эффект?

http { 
    types { 
     # here is additional types 
    } 
} 

Моя рабочая теория состоит в том, что если блоки работают, как описано в приведенной выше ссылке, добавляя такой блок не будет перезаписывать http блок в конфигурации Nginx, но продлит его, как если бы я добавил types непосредственно блок http в nginx.conf.

Является ли это действующей стратегией? Или я пропущу что-то проще?

ответ

1

Хотя явно не указано в документации, директива типа nginx ведет себя аналогично другим директивам в отношении наследования.

Директива наследуется от предыдущего уровня тогда и только тогда, когда нет type директив, определенных на текущем уровне.

Директива types может указывать на http, server или location уровень блока.

Чтобы расширить типы MIME (а не переопределение их), чтобы можно добавить types блок с добавлениями в любой файл, содержащий http, server или location контекст.

Но если добавить types блок на server или location уровне, вы должны также добавить еще include mime.types заявление на том же уровне, с тем, чтобы не потерять системы по умолчанию.

В ваших сайтов с поддержкой файлов:

# (1) 
server { 
    # (2) 
    location ... { 
     # (3) 
    } 
} 

Если сайты с поддержкой файлов включает в себя определение server { ... } блока, вы можете добавить типы блокировки в положение (1), который будет увеличивать типы пантомимы уже загруженные основной файл nginx.conf.

Однако, если вы добавили типы блокировки в позиции (2) или (3), вам также необходимо будет добавить include заявление тянуть в типах системы снова:

server { 
    include mime.types; 
    types { ... } 
    ... 
} 

директива types является documented here.