Re: Fwd: Регексповый server_name

2013-03-08 Пенетрантность Валентин Бартенев
On Thursday 07 March 2013 21:44:28 Daniel Podolsky wrote:
   Писать скрипты.
  
  А есть ли замеры того, сколько ест одна конфигурация, и другая? Я вот
  довольно широко регексмы использую (но у меня иначе и никак).
  
  Если я правильно понял вопрос, то это зависит от самой конфигурации
  и количества модулей, с которыми скомпилирован nginx. Каких-то точных
  чисел тут быть не может.
 
 я скорее не про точные числа, а про сравнение производительности
 конфигурации на регекспах с конфигурацией на статических именах.
 
 что-то мне подсказывает, что разбор заголовков - достаточно тяжелая
 операция, чтобы один регехп на этом фоне просто потерялся.

Один регэксп у вас повлечет кучу логики с переменными из него.

Речь идет не о том, что быстрее, а о том, что не нужно программировать на 
конфигах и поддерживать несколько простых конфигураций проще, чем одну с кучей 
сложной логики.

--
Валентин Бартенев
http://nginx.org/en/donation.html
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Fwd: Регексповый server_name

2013-03-08 Пенетрантность Валентин Бартенев
On Friday 08 March 2013 20:48:42 Daniel Podolsky wrote:
  Один регэксп у вас повлечет кучу логики с переменными из него.
 
 Или нет. Если группа(ы) из регекспа используются только для установки
 root - конфиг только читабельнее станет от их применения.
 
 Другое дело, что матчинг с группировкой может оказаться все же
 существенно медленнее выбора по дереву.
 
 Провести, что ли, самому соответствующие тесты?.. Взять тысячу сайтов,
 и прогнать миллион запросов, через один конфиг и через другой. И
 померять загрузку...
 

Это бессмысленно. Регулярное выражение вида:

  ^([^.]+)\.([^.]+)\.example\.com$

скорее всего будет быстрее, чем поиск по дереву из тысячи доменов.

В любом случае, на фоне всех остальных операций - это неизмеримо малая
величина. К примеру, на моем мобильном i3-350m указанное регулярное
выражение выполняется в среднем за 400 наносекунд без использования JIT,
и менее чем за 100 наносекунд с JIT.

--
Валентин Бартенев
http://nginx.org/en/donation.html
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Fwd: Регексповый server_name

2013-03-07 Пенетрантность Валентин Бартенев
On Thursday 07 March 2013 20:12:09 Юрий Гончаров wrote:
 Здравствуйте
 
 есть инфраструктура
 
 /lab/user1/project1
 /lab/user1/project2
 /lab/user1/project3
 /lab/user1/project4
 /lab/user2/someproject1
 /lab/user2/someproject2
 
 и т д
 
 Есть ли возможность в nginx для каждого user1 создавать один умный
 server_name и root для работы...что-то типа
 
server {
 listen 80;
 server_name  $project.user1.lab.domain.com;
 location /
  {
   root /lab/user1/$project;
   }
 }
 
 
 Или все же писать скрипты которые будут генерить конфиги?
 

Писать скрипты.

--
Валентин Бартенев
http://nginx.org/en/donation.html
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Fwd: Регексповый server_name

2013-03-07 Пенетрантность Daniel Podolsky
 Писать скрипты.
А есть ли замеры того, сколько ест одна конфигурация, и другая? Я вот
довольно широко регексмы использую (но у меня иначе и никак).
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Регексповый server_name

2013-03-07 Пенетрантность Bondar Alexey
server {
   listen 80;
   server_name ~^(?project.+)\.(?user.+)\.example\.net$;

   root /var/www/$user/$project/public;
}

Как следствие 

project1.user1.example.net = /var/www/user1/project1/public

Или я не понял вопроса?

On 7 Mar 2013, at 17:12, Юрий Гончаров n...@miritec.com wrote:

 Здравствуйте
 
 есть инфраструктура
 
 /lab/user1/project1
 /lab/user1/project2
 /lab/user1/project3
 /lab/user1/project4
 /lab/user2/someproject1
 /lab/user2/someproject2 
 
 и т д
 
 Есть ли возможность в nginx для каждого user1 создавать один умный 
 server_name и root для работы...что-то типа
 
server {
 listen 80;
 server_name  $project.user1.lab.domain.com;
 location /
  {
   root /lab/user1/$project;
   }
 }
 
 
 Или все же писать скрипты которые будут генерить конфиги?
 
 Спасибо!
 
 --
 NEO83-RIPE
 
 
 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru



smime.p7s
Description: S/MIME cryptographic signature
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru