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