ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

don't repeat yourself / copy and paste programming



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 mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.