Re: добавление переменных
Валентин Бартенев
vbart at nginx.com
Thu Apr 4 13:41:40 UTC 2013
On Thursday 04 April 2013 08:04:53 Oleg wrote:
> On Thu, Apr 04, 2013 at 01:31:38AM +0400, Валентин Бартенев wrote:
> > On Thursday 04 April 2013 01:04:24 Oleg wrote:
> > > On Wed, Apr 03, 2013 at 11:24:18PM +0400, Валентин Бартенев wrote:
> > > > On Wednesday 03 April 2013 23:06:28 Oleg wrote:
> > > > > Всем привет.
> > > > >
> > > > > Хочется добавлять переменные не перед конфигурацией процесса, а
> > > > >
> > > > > в процессе обработки запроса. Такое возможно? Везде, где нашёл
> > > > > описание создания переменных, написано, что только в
> > > > > preconfiguration можно.
> > > > >
> > > > > Я так понимаю, что $cookie_* и $http_* динамически создаются?
> > > >
> > > > Советую использовать grep src/.
> > > >
> > > А разве есть какой-то другой способ :-)?
> > >
> > > > У этих переменных отдельные хуки в ngx_http_get_variable():
> > > > http://trac.nginx.org/nginx/browser/nginx/trunk/src/http/ngx_http_var
> > > > iabl es.c#L569
> > > >
> > > Это я видел.
> > > Т.е. цивильного способа, не выходя за пределы модуля, такую
> > > переменную
> > >
> > > использовать нет? Надо ngx_http_get_variable править?
> >
> > А для чего вам ещё одна magic-переменная, если не секрет?
>
> У меня есть модуль аутентификации, который после своей работы должен
> создавать некоторые переменные, в случае удачной аутентификации. Например,
> $my_user, $my_http_addr, $my_http_port, где последнии два используются для
> обратного прокси. Т.к. возможны конфигурации, где некоторых переменных нет,
> а при старте nginx не известно, какой набор данных есть для каждого
> пользователя, то не хотелось бы заранее забивать жёстко в исходник все
> возможные переменные.
> Можно, конечно, формировать такой список переменных через конфиг, вроде:
>
> my_module_need_var "var1";
> my_module_need_var "var2";
>
> И уже при старте nginx создавать обычным образом только то, что указано в
> конфиге явно. Но мне это кажется не красивым.
>
Нормальный способ. Можно списком:
my_module_vars var1 var2 var3;
--
Валентин Бартенев
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru