Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
регулярки в server name
- To: nginx-ru@xxxxxxxxx
- Subject: регулярки в server name
- From: "playnet" <nginx-forum@xxxxxxxx>
- Date: Mon, 2 Jul 2012 11:35:03 -0400 (EDT)
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tigger.jlkhosting.com; s=x; h=From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To:Date; bh=YA7TDiG2oD43qGyQ+KJo4RN0/8mLkz5UgcXmRMjhLEI=; b=JExrOqHfKyrggNGid5L5lGVRv9g6TsKp9oa/NpmWIlp6gHNU0vpmWs2kvTekiuNkQKGf7nbqQlEq5Z2aR7WlvQY1RhleKkX8leoH2Ag7T1hZ8VRgi4K6D78e46GHq/ej;
Согласно документации, в server_name можно
использовать регулярки.
Понадобилось сделать редирект c урлов
вида www.sub.site.ru на sub.site.ru, при этом
сохранив работу www.site.ru. sub - доменов
более 50.
Сам сайт описан как
server_name site.ru www.site.ru *.site.ru
Сделал отдельный сервер с server_name
~^www\.(w+)\.site.ru$;
по логике - имя корректное. Этот блок
идёт выше основного. При этом в него мы
не попадаем никогда. Как показало 4 часа
ковыряния, "у регэкспов в сервер_нейм
приоритет минимальный и туда попадаем
если нет ничего лучше". Есть
возможность выставить этому регэкспу
высокий приоритет? Или только изменить
главное описание, сделав его также
регэкспом и потеряв в
производительности?
Использовать дефолтный сервер не
вариант - сайтов на сервере больше 20
плюс "по умолчанию" должно отдавать
ошибку. Сайтов с такой системой в
дальнейшем также будет больше одного.
Второй вариант - сделать так нелюбимый
тут if ($http_host ~* ^www\.w+\.site\.ru)... и как
модифицировать $http_host? rewrite меняет
только uri.
Третий - через встроенный perl. Не
хотелось бы, но если у кого такая схема
работает - просьба поделиться
вариантами.
четвертый, совсем уж через 1 место -
описать каждый www-поддомен в отдельном
сервере.. 50+ раз...
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,228177,228177#msg-228177
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|