Re: добавление переменных

Oleg lego12239 at yandex.ru
Thu Apr 4 04:04:53 UTC 2013


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_variabl
> > > 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 создавать обычным образом только то, что указано в
конфиге явно. Но мне это кажется не красивым.



Подробная информация о списке рассылки nginx-ru