don't repeat yourself / copy and paste programming
Gena Makhomed
gmm на csdoc.com
Ср Ноя 23 11:11:51 UTC 2011
On 23.11.2011 12:39, Denis F. Latypoff wrote:
>> И ещё вопрос, вот мне нужно в отдельную директорию (админку) разрешить
>> доступ только с определённой сетки. Как это сделать, чтобы в
>> соответствующем location-е не дублировать все proxy* настройки из
>> location-а, который перехватывает .php?
> ну так же - инклудом.
> nginx не будет работать быстрее, если в конфиге меньше строк,
> что за панический страх перед дублированием конфига?
по поводу copy/paste:
http://en.wikipedia.org/wiki/Don%27t_repeat_yourself
http://en.wikipedia.org/wiki/Copy_and_paste_programming
по поводу include:
не просмотрев все конфиги нельзя понять какие сайты
затронет модификация того или иного фрагмента include-файла,
потому что все include-файлы имеют глобальную область видимости.
как вариант - применить трехуровневую схему:
/etc/nginx/nginx.conf
/etc/nginx/virtual/example.com/example.com.conf
/etc/nginx/virtual/example.com/include-file.inc
в таком случае у каждого сайта будет свой собственный
подкаталог и там будут include-файлы только с локальной
областью видимости, которые можно будет безопасно
модифицировать, точно зная, что это не затронет никакие
другие сайты. но это опять же, конфигурирование nginx
методом copy/paste, потому что в 99% случаев
это будут полностью одинаковые копии файлов.
как избавиться от метода copy/paste в том или ином виде:
1. написать свой собственный генератор конфига nginx из DSL.
2. добавить в nginx возможность создавать "макросы"
с локальной областью видимости, тогда можно будет
конфигурировать nginx по принципу "1 сайт == 1 конфиг"
и вместе с тем, избавиться от индусского метода copy/paste.
3. ......................................................... ?
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru