Re: Нужна помощь по базовому синтаксису конфига nginx
Alex, the Marrch Ca'at
marrch.caat at gmail.com
Thu Jul 23 21:44:58 MSD 2009
> и пусть таких пар будет сотни, тысячи. У нас тоже дофига доменов,
> конфиги генерятся по данным из базы. Редиректы работают отлично.
Хм, и при каждом обновлении базы приходится делать reload конфигурации
сервера? Это нормально?..
> Стопицот директив server работают быстрее чем одна server_name с регекспом.
Ну если это действительно так - то, конечно, нет никаких проблем
дампить из БД набор таких директив в отдельный файл и инклудить его в
конфиг... В конце концов, можно это делать по расписанию раз в час,
ничего страшного.
> В итоге, на сервисе закладок две разные ссылки, у них разные рейтинги,
> блаблабла. А виноваты: программист закладок, который не сделал
> проверки дубликата www. и админ, который не сделал редирект.
Знаете, это весьма разумно все звучит, Вы правы. Я на выходных
потестирую, и если nginx действительно нормально переживут конфиг с 15
000 директив server, то так я и сделаю. А если и нет - то, думаю, что
один блок
server {
server_name ~^(www\.)?(.+)$;
rewrite ^ http://$2$request_uri permanent;
}
- тоже будет работать нормально.
Спасибо!
> > 2009/7/23 Alexey V. Karagodov <kav at karagodov.name>:
> >> очевидно, что Вы пытаетесь решить проблему не с той стороны
> >> не всегда сайты www.xxx.com и xxx.com одно и тоже
> >> проще сделать рерайт с xxx.com на www.xxx.com или наоборот
> >> и правильнее
> >>
> >> On 23.07.2009, at 18:21, Alex, the Marrch Ca'at wrote:
> >>
> >>> Доброго всем времени суток!
> >>>
> >>> Я использую связку nginx+memcached, она обслуживает запросы,
> >>> приходящие на большое количество разных доменов, и соответственно - в
> >>> включе memcached используется имя домена. Но мне хочется, чтобы при
> >>> этом от имени домена автоматически отрезалось начальное "www.", если
> >>> оно там имеется, так, чтобы для www.mydomain.ru и mydomain.ru
> >>> использовался один ключ memcached. Очевидно, что нужно вместо
> >>> следующей инструкции:
> >>> set $memcached_key "Tsites::$host::Index";
> >>> - использовать if с регулярным выражением, который в случае наличия в
> >>> начале $host строки "www." будет подставлять в $memcached_key весь
> >>> остаток имени домена. Но вот как это правильно написать в синтаксисе
> >>> конфигов nginx - я не знаю, подскажите, пожалуйста.
> >>>
> >>> Вообще, на сайте Игоря Сысоева я не нашел никаких описаний вот таких
> >>> вот базовых вещей. Собственно, даже само существование операторов if и
> >>> set становится ясно только из примеров конфига, а на всякие более
> >>> сложные вещи - например, то, что можно писать вещи вроде if (!-e
> >>> $request_filename) - легко можно так и не наткнуться. Не знает ли
> >>> кто-нибудь, вдруг уже кто-то написал справку по таким вот базовым
> >>> моментам в конфигурации nginx? Или может, она есть на оф.сайте, просто
> >>> я ее не нашел?..
> >>>
> >>> С уважением и надеждой на помощь -
> >>> Alex, the Marrch Ca'at
> >>
> >>
> >
>
More information about the nginx-ru
mailing list