Re: добавление переменных
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 mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: добавление переменных
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-переменная, если не секрет? Если не выходя за пределы модуля, то можно исхитриться и сделать две переменные так: set $var_key "abc"; return 200 $var_value; $var_value будет возвращать значение для имени записанного в $var_key. Получится некий аналог с более сложным доступом. -- Валентин Бартенев http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: добавление переменных
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_variables.c#L569 Это я видел. Т.е. цивильного способа, не выходя за пределы модуля, такую переменную использовать нет? Надо ngx_http_get_variable править? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: добавление переменных
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_variables.c#L569 Переменные можно добавлять и во время конфигурации, смотрите например как работает директива set из rewrite-модуля. -- Валентин Бартенев http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
добавление переменных
Всем привет. Хочется добавлять переменные не перед конфигурацией процесса, а в процессе обработки запроса. Такое возможно? Везде, где нашёл описание создания переменных, написано, что только в preconfiguration можно. Я так понимаю, что $cookie_* и $http_* динамически создаются? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: SSI: flastmod, fsize
On Wednesday 03 April 2013 21:55:14 Matwey V. Kornilov wrote: > Привет, > > Выглядит так, как-будто модуль SSI не поддерживает директивы #flastmod и > #fsize. Интересно, почему. Сложно реализовать? Чрезмерные затраты? Никому > не нужно? > ИМХО крайне редко функциональность, если я не ошибся с запросом, то похоже за всю историю существования рассылки и форума спрашивал только один человек: https://www.google.com/search?q=%23flastmod+OR+%23fsize+site%3Anginx.org На SO нашлось всего 5 вопросов в которых хоть как-то упомянуты эти SSI команды, и все эти вопросы не связаны с nginx. На SF похоже вообще нет упоминаний. Да и странно на такое подзапрос делать. В вашем случае, например, оно как используется? -- Валентин Бартенев http://nginx.org/en/donation.html > Это создает некоторые проблемы при переносе некоторого простенького сайта с > lighttpd. > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
SSI: flastmod, fsize
Привет, Выглядит так, как-будто модуль SSI не поддерживает директивы #flastmod и #fsize. Интересно, почему. Сложно реализовать? Чрезмерные затраты? Никому не нужно? Это создает некоторые проблемы при переносе некоторого простенького сайта с lighttpd. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.3.15
On 4/3/13 5:48 PM, Anatoly Mikhailov wrote: > > On Apr 3, 2013, at 2:18 PM, Maxim Konovalov wrote: > >> On 3/28/13 2:46 PM, Maxim Konovalov wrote: >>> On 3/28/13 1:31 PM, Nikita Stupin wrote: Добрый день. Валентин, а планируется на http://nginx.org/packages/ubuntu/ выкладывать сборки и development ветки? >>> Планируется, работаем над этим. >>> >> http://mailman.nginx.org/pipermail/nginx/2013-April/038389.html > > насколько я понимаю, проект wiki.nginx.org никак не аффилирован > и вообще не связан с Nginx, Inc. > А как это связано с пакетами? -- Maxim Konovalov +7 (910) 4293178 http://nginx.com/services.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.3.15
On Apr 3, 2013, at 2:18 PM, Maxim Konovalov wrote: > On 3/28/13 2:46 PM, Maxim Konovalov wrote: >> On 3/28/13 1:31 PM, Nikita Stupin wrote: >>> Добрый день. >>> >>> Валентин, а планируется на http://nginx.org/packages/ubuntu/ >>> выкладывать сборки и development ветки? >>> >> Планируется, работаем над этим. >> > http://mailman.nginx.org/pipermail/nginx/2013-April/038389.html насколько я понимаю, проект wiki.nginx.org никак не аффилирован и вообще не связан с Nginx, Inc. > > -- > Maxim Konovalov > +7 (910) 4293178 > http://nginx.com/services.html > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.3.15
On 3/28/13 2:46 PM, Maxim Konovalov wrote: > On 3/28/13 1:31 PM, Nikita Stupin wrote: >> Добрый день. >> >> Валентин, а планируется на http://nginx.org/packages/ubuntu/ >> выкладывать сборки и development ветки? >> > Планируется, работаем над этим. > http://mailman.nginx.org/pipermail/nginx/2013-April/038389.html -- Maxim Konovalov +7 (910) 4293178 http://nginx.com/services.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: resolver cname ttl
Hello! On Wed, Apr 03, 2013 at 11:25:55AM +0400, Xek PL wrote: > Привет всем! > > Такая проблема: resolver не учитывает TTL для CNAME записей. > > Например,в DNS указано: > upstream 60 CNAME cname1 > cname1 86400 A 10.10.10.10 > > По тестам получается, что upstream резолвится раз в сутки. > Хотя должен раз в 60 сек. > > Протестировал на версиях 1.2.7, 1.3.15 > Баг? > Или есть какие-то соображения для такой работы? Во встроенном резолвере не очень хорошо сделана обработка нескольких записей в одном DNS-ответе, и в частности в вышеописанном случае, если обе записи приходят вместе - то CNAME будет "пропущен", и кеш resolver'а попадёт сразу адрес, с ttl 86400. Простой workaround - использовать resolver ... valid=30s; См. http://nginx.org/r/resolver. Если не лень - было бы полезно нарисовать тикет в trac'е, http://trac.nginx.org. Если проблема очень болит и мешает ходить - приходите на http://nginx.com, договоримся. -- Maxim Dounin http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: resolver cname ttl
Здравствуйте, Xek. Вы писали 3 апреля 2013 г., 11:25:55: > Такая проблема: resolver не учитывает TTL для CNAME записей. > Протестировал на версиях 1.2.7, 1.3.15 > Баг? > Или есть какие-то соображения для такой работы? ИМХО, это by design у bind и nginx тут не при чем. Наверняка при reload'e бинда возникает [1]. Похожая история [2] Я с этим сталкивался (правда для TXT). Инфа есть тут (но там нет про CNAME) [3] [1] http://marc.info/?l=bind-users&m=98864612614783&w=2 [2] https://lists.isc.org/pipermail/bind-users/2004-January/048216.html [3] http://www.netwidget.net/books/apress/dns/info/ttl.html -- С уважением, Dmitry mailto:nginx...@sadok.spb.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: resolver cname ttl
соображение ровно одно, для установления соединения с бекендом нужен адрес, поэтому в момент чтения конфигурации имена ресолвятся в адреса (обращение к ресолверу заблокирует worker-процесс). закешировать внутри worker-процесса строго в соответствии с TTL возможности нет, но можно сделать лайфхак и ресолвить при каждом обращении: set $noop ""; proxy_pass http://some.host$noop; 3 апреля 2013 г., 13:25 пользователь Xek PL написал: > Привет всем! > > Такая проблема: resolver не учитывает TTL для CNAME записей. > > Например,в DNS указано: > upstream 60 CNAME cname1 > cname1 86400 A 10.10.10.10 > > По тестам получается, что upstream резолвится раз в сутки. > Хотя должен раз в 60 сек. > > Протестировал на версиях 1.2.7, 1.3.15 > Баг? > Или есть какие-то соображения для такой работы? > > > Удачи, > Павел > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: UserDir и отдача файлов напрямую
Anton Yuzhaninov wrote: > > Чтобы отдавать > > видеоролики без участия апача, написал в конфиге сервера: > > > > location ~* ^.+\.(avi|flv)$ { > > root /home/www/data ; > > expires 30d; > > } > > > > Файлы по ссылке вида http://site.ru/some/dir/file.flv теперь отдаются > > напрямую. > > > > Но проблема в том, что в backend-e включены UserDir, и надо чтобы > > http://site.ru/~pupkin/some/dir/file.flv тоже работало. Как бы это > > покрасивее сконфигурить? > > Проще всего проксировать http://site.ru/~ на апач: > > location ~* ^.+\.(avi|flv)$ { > root /home/www/data ; > expires 30d; > } > > location ^~ /~ { > proxy_pass ...; > } Я пока так сделал: location / { proxy_pass http://127.0.0.1:8418; proxy_set_headerHost$host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ~ /~ { proxy_pass http://127.0.0.1:8418; proxy_set_headerHost$host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ~* \.(avi|flv|mov|mp3|mpg|pdf|pps|ppt|psd|rar|rtf|swf|wmv|zip|doc)$ { root /home/www/data ; expires 30d; } > > Но можно заморочаться и сэмулировать поведение UserDir средствами > nginx, хотя это будет сложнее. Хотелось бы, чтобы .flv и прочее из юзерских каталогов тоже отдавалось бы nginx-ом напрямую. Можно взять за основу http://wiki.nginx.org/UserDir и творчески переработать, но вдруг у кого уже готовое есть и поделиться не жалко. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:suda...@sibptus.tomsk.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: UserDir и отдача файлов напрямую
On 04/03/13 06:25, Victor Sudakov wrote: Чтобы отдавать видеоролики без участия апача, написал в конфиге сервера: location ~* ^.+\.(avi|flv)$ { root /home/www/data ; expires 30d; } Файлы по ссылке вида http://site.ru/some/dir/file.flv теперь отдаются напрямую. Но проблема в том, что в backend-e включены UserDir, и надо чтобы http://site.ru/~pupkin/some/dir/file.flv тоже работало. Как бы это покрасивее сконфигурить? Проще всего проксировать http://site.ru/~ на апач: location ~* ^.+\.(avi|flv)$ { root /home/www/data ; expires 30d; } location ^~ /~ { proxy_pass ...; } Но можно заморочаться и сэмулировать поведение UserDir средствами nginx, хотя это будет сложнее. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
resolver cname ttl
Привет всем! Такая проблема: resolver не учитывает TTL для CNAME записей. Например,в DNS указано: upstream 60 CNAME cname1 cname1 86400 A 10.10.10.10 По тестам получается, что upstream резолвится раз в сутки. Хотя должен раз в 60 сек. Протестировал на версиях 1.2.7, 1.3.15 Баг? Или есть какие-то соображения для такой работы? Удачи, Павел ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru