variables in charset

Igor Sysoev is at rambler-co.ru
Mon Oct 9 22:54:12 MSD 2006


On Mon, 9 Oct 2006, Dmitry Morozovsky wrote:

> On Mon, 9 Oct 2006, Igor Sysoev wrote:
>
> IS> > IS> > а в charset переменные не поддерживаются?
>
> [snip]
>
> IS> > Потому что перекодировка меня интересует крайне слабо, главное - чарсет в
> IS> > заголовке Content-type: (для хостинга, большая часть которого в
> IS> > windows-1251,
> IS> > но встречаются koi-8r и utf-8)
> IS>
> IS> Тогда, если перекодировка вообще не используется, то так:
> IS>
> IS> charset_map  windows-1251  _ {}
> IS> charset_map  utf-8         _ {}
> IS> charset_map  koi8-r        _ {}
> IS>
> IS> map $host   $charset {
> IS>      ....
> IS>      .domain.tld  windows-1251;
> IS>      ....
> IS> }
> IS>
> IS> Смысл всего действия в том, что nginx изначально внутри себя во время
> IS> запроса не оперировал строковыми именами charset'ов: каждому charset'у
> IS> на стадии обработки конфига присваивается численный индекс и дальше
> IS> работа идёт в основном с ними. В данном случае во время запроса
> IS> приходится иметь дело со строками, но для тоже ищется индексы.
> IS> А для того, чтобы был индекс, нужно чтобы имя было известно на стадии
> IS> конфигурации. Это достигается, например, фиктивыми charset_map'ами.
>
> То есть главное, чтобы charset_map'ы были определены до map $host $charset{} ?

Нет, главное, чтобы они были где-нибудь определены.
Большинство директив nginx'а не зависят от порядка определения - многие
директивы, описанные в начале http раздела, могут быть раскиданы между
серверами:

     server {
     }

     директивы

     server {
     }

или вообще указаны в самом конце.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list