use

Gena Makhomed gmm на csdoc.com
Ср Июл 6 20:50:37 MSD 2011


On 06.07.2011 13:31, Роман Москвитин wrote:

>> для того, чтобы видеть полный конфиг - надо будет постоянно
>> переключаться между несколькими конфигурационными файлами,
>> например, при просмотре через F3 в mc - это надо часто
>> открывать/закрывать несколько файлов, чтобы понять
>> логику работы nginx. или использовать screen
>> с той же целью. таким образом директива include
>> ухудшает читаемость конфига и легкость восприятия.

> Ммм... У вас на сервере ограничение на число входов в шелл?

У меня несколько иного плана проблема - в сутках всего 24 часа.
Поэтому совсем не хочется тратить много времени неэффективно.

>> расширить конфиг nginx встроенным
>> средством для подстановки блоков

> Окей! Файл на сто хостов. С выкрутасами. Строк 500 будет? Запросто!
> И где мы этот блок прописывать будем? С Вашей же логикой - чтим, видим блок,
> пытаемся вспомнить что там, не получается, скроллим вверх-вниз-вбок, радостно
> понимаем что тут все хорошо и... Судорожно ищем где же мы были до этого.
> Либо те же самые screen/второй шелл/whatever...

Средствами vim в одном файле навигация будет происходить гораздо быстрее
см. документацию по текстовому редактору http://vimdoc.sourceforge.net/

>> фрагменты конфига включаемые через include - это примено
>> то же самое, что и глобальные переменные в программе,
>> нельзя понять где именно используется этот файл
>> не просмотрев полностью весь конфиг nginx.

> А чем в этом блок отличается?

областью видимости.

у включаемого через include файла - глобальная область видимости,
как у глобальной переменной, у фрагмента конфига, заданного в block -
локальная область видимости, только от точки объявления и до конца файла

если в nginx.conf будет директива

include /etc/nginx/conf/virtual/*.conf;

и дальше в каталоге /etc/nginx/conf/virtual/
будет по одному конфигурационному файлу на каждый сайт,
например,

example.com.conf
example.net.conf
example.org.conf

то любой блок, который определен внутри этого
локального конфигурационного файла будет иметь
область видимости только до конца файла.

> Ограничение видимости рубит профит
> в использовании инициализатора того же fcgi - пишем в каждый хост одно и то же.

смысл этого фрагмента текста я не смог понять.

> А еще найдется толпа сами знаете кого, которые будут вписывать инклуды в блоки.

если это создает какие-то проблемы, - можно на уровне парсера конфига
запретить указывать директиву include внутри фрагмента block { ... }.

-- 
Best regards,
  Gena




Подробная информация о списке рассылки nginx-ru