Re: client_body_temp_path - permissions
В таком виде, конечно, не закоммитят. Я тут нагло воспользовался существованием внутреннего флага, который по факту используется для webdav-модуля, и "вытащил" его в конфигурацию, потому патч и такой простой. Если уж делать по-человечески - то делать нормальную конфигурацию по аналогии с proxy_store_access. Но это немного сложнее, и такой патч, вероятно, уже не будет так легко накладываться на практически любую версию. > On Jun 2, 2017, at 1:04 PM, S.A.N <nginx-fo...@forum.nginx.org> wrote: > > Konstantin Baryshnikov Wrote: > --- >>> >>> On May 31, 2017, at 12:35 AM, S.A.N <nginx-fo...@forum.nginx.org> >> wrote: >>> >>> Я конечно извиняюсь, за настойчивость, но неужели пермишен 0600, на >> файл >>> который должен быть обработан в другом процессе, это нормально и это >> никак >>> нельзя настроить в конфиге Nginx? >> >> Нельзя. >> >> Я по большой нужде обходился вот таким патчем: >> > > Спасибо, но проблема ручных патчей в будущей поддержке, нужно не забывать > всегда патчить новые версии Nginx, и потом тестировать... > Будет очень хорошо если его закомитят и будет работать из коробки. > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,274059,274602#msg-274602 > > ___ > 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: client_body_temp_path - permissions
> > On May 31, 2017, at 12:35 AM, S.A.Nwrote: > > Я конечно извиняюсь, за настойчивость, но неужели пермишен 0600, на файл > который должен быть обработан в другом процессе, это нормально и это никак > нельзя настроить в конфиге Nginx? Нельзя. Я по большой нужде обходился вот таким патчем: diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -386,6 +386,13 @@ offsetof(ngx_http_core_loc_conf_t, client_body_in_single_buffer), NULL }, +{ ngx_string("client_body_file_group_access"), + NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, + ngx_conf_set_flag_slot, + NGX_HTTP_LOC_CONF_OFFSET, + offsetof(ngx_http_core_loc_conf_t, client_body_file_group_access), + NULL }, + { ngx_string("sendfile"), NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF |NGX_CONF_FLAG, @@ -1462,6 +1469,7 @@ } r->request_body_in_single_buf = clcf->client_body_in_single_buffer; +r->request_body_file_group_access = clcf->client_body_file_group_access; if (r->keepalive) { if (clcf->keepalive_timeout == 0) { @@ -3571,6 +3579,7 @@ clcf->max_ranges = NGX_CONF_UNSET_UINT; clcf->client_body_in_file_only = NGX_CONF_UNSET_UINT; clcf->client_body_in_single_buffer = NGX_CONF_UNSET; +clcf->client_body_file_group_access = NGX_CONF_UNSET; clcf->internal = NGX_CONF_UNSET; clcf->sendfile = NGX_CONF_UNSET; clcf->sendfile_max_chunk = NGX_CONF_UNSET_SIZE; @@ -3792,6 +3801,8 @@ NGX_HTTP_REQUEST_BODY_FILE_OFF); ngx_conf_merge_value(conf->client_body_in_single_buffer, prev->client_body_in_single_buffer, 0); +ngx_conf_merge_value(conf->client_body_file_group_access, + prev->client_body_file_group_access, 0); ngx_conf_merge_value(conf->internal, prev->internal, 0); ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0); ngx_conf_merge_size_value(conf->sendfile_max_chunk, diff --git a/src/http/ngx_http_core_module.h b/src/http/ngx_http_core_module.h --- a/src/http/ngx_http_core_module.h +++ b/src/http/ngx_http_core_module.h @@ -402,6 +402,7 @@ ngx_uint_tserver_tokens; /* server_tokens */ ngx_flag_tchunked_transfer_encoding; /* chunked_transfer_encoding */ ngx_flag_tetag;/* etag */ +ngx_flag_tclient_body_file_group_access; /* client_body_file_group_access */ #if (NGX_HTTP_GZIP) ngx_flag_tgzip_vary; /* gzip_vary */ > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,274059,274538#msg-274538 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: HACK NGINX+DAV
> On Dec 3, 2016, at 1:03 PM, itcodwrote: > > Буду благодарен если сообщество подскажет где для этих тестов взять > бесплатную временную виртуалку с федорой. Без заморочек с инсталяциями оси и > излишней настройкой, а то как обычно времени на админскую рутину нет > совсем:) http://promocodeclub.com/digitalocean-promo-code/ > Знать бы только какие по мнению авторов nginx > - "ЛИШНИЕ" при подобном тесте:) Очевидно, сторонние модули по мнению авторов nginx - это те модули, которые разработаны не ими. В вашей конфигурации это вот: --add-module=/usr/src/1/nginx-dav-ext-module-master --add-module=/usr/src/1/f4f-hds-master --add-module=/usr/src/1/echo-nginx-module-master --add-module=/usr/src/1/nginx_md5_filter-master --add-module=/usr/src/1/ngx_devel_kit-master --add-module=/usr/src/1/lua-nginx-module-master --add-module=/usr/src/1/set-misc-nginx-module-master Модуль Dav-Ext - сторонний. Если ваш баг воспроизводится только с ним, но не со штатным dav-модулем - обращайтесь к разработчику модуля Dav-Ext. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: MD5 и memcached get value
> Второй вопрос более актуален. Перелопатив всю возможную документацию не смог > найти как в nginx получить значение переменной из memcached? > > Нужно что-то вроде: > > if (memcachedget('denyip'.$remote_addr)==1) {return 444;} > > Пока как вариант получается нужно определив скриптом клиента для блокировки > запихать его в файл, и через geo вытаскивать nginx-ом, к тому же, если я > правильно понимаю, не забыв еще и nginx reload сделать, что как бы в миллион > раз затратнее. У вас этот список обновляется каждые несколько секунд? Если пару раз в полчаса или реже - как раз все наоборот, в "миллион" раз затратнее будет вариант с постоянным обращением к мемкешу. > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,268252,268252#msg-268252 > > ___ > 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, > хидерс и ssi модулей, но проблемма > именно с генерением php uniqid. Можно, конечно попытаться перейти на тот-же > userid модуль, но тогда придется > много что менять в бакэнде, который дальше будет это обрабатывать, чего бы > сильно не хотелось. К уже озвученному совету с X-Accel-Redirect добавлю, что для его отдачи можно использовать сам php в неблокирующем режиме - например, с помощью http://reactphp.org/, будет буквально 10 строк кода, и вполне вменяемо по потреблению ресурсов. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: модуль на заказ
> On Feb 23, 2016, at 11:33 AM, Alexander Uskovwrote: > > Добрый день, > > Скажите, пожалуйста, где можно заказать написание модуля? Выполнялет ли такие > заказы Nginx Inc.? Александр, опишите вашу задачу. По опыту, когда заходит речь о разработке модуля, после полной и корректной формулировки задачи в подавляющем большинстве случаев оказывается, что собственный модуль писать вовсе не обязательно, и вполне достаточно стандартных модулей и/или небольшого скриптинга на том же lua. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как вернуть размер проксируемого ответа?
Есть стороний api на который нельзя повлиять. Ответы этого api пришлось пропустить через свой nginx так как в ответах нет заголовка Access-Control-Allow-Origin. Есть запрос в ответ на который приходит json: массив хешей. И есть ситуация, когда нужно не тело ответа, а знание пуст ответ или нет, а так как ответ сам по себе может быть велик то хочется схитрить. Если даже по запросе по HTTP/1.0 не отдается Content-Length, значит, так уж устроен этот стороний API, на который нельзя повлиять. Но, может быть, он поддерживает HTTP Range Requests? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Балансировка между HTTP и FastCGI бэкендами
On Apr 30, 2015, at 4:49 PM, Maxim Dounin mdou...@mdounin.ru wrote: On Thu, Apr 30, 2015 at 06:06:05AM +0300, Konstantin Baryshnikov wrote: On Apr 29, 2015, at 3:21 PM, Maxim Dounin mdou...@mdounin.ru wrote: location / { if ($new) { proxy_pass http://new.example.com; } fastcgi_pass old.example.com; } } Ого, а это теперь работает? Всегда считал это гарантированным способом отстрелить себе ногу. Что-то изменилось? Вот конкретно приведённая конструкция - работает, и без каких-либо проблем. И, собственно, всегда работала. Но если конфиг будет чуть сложнее - то нога в опасности, да. Подробнее про опасности расписано вот тут: http://wiki.nginx.org/IfIsEvil Ага, все как было, ясненько, спасибо. Вообще у нас введено правило “if используем только с директивами rewrite-модуля”, так оно и надежнее, и сумасшедшие запутанные конфигурации нагородить не позволяет. P. S. Лет 5 назад у меня была идея для решения проблемы IfIsEvil попробовать перенести if-ы на уровень location-ов (включая вложенные), вида location /foo/ when ($new) { ... } но почитал исходники и понял, что это не очень просто :-) ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Балансировка между HTTP и FastCGI бэкендами
On Apr 29, 2015, at 3:21 PM, Maxim Dounin mdou...@mdounin.ru wrote: location / { if ($new) { proxy_pass http://new.example.com; } fastcgi_pass old.example.com; } } Ого, а это теперь работает? Всегда считал это гарантированным способом отстрелить себе ногу. Что-то изменилось? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Как вызвать phantomjs прямо из nginx?
On Mar 10, 2015, at 7:30 AM, softshape nginx-fo...@nginx.us wrote: Всем привет, нужен совет, возможно ли и как настроить nginx, чтобы решить такую задачу - на каждый запрос вида http://pdf.domain.ru/path/?pdf=12345.pdf вызывать phantomjs c параметрами - phantomjs /opt/www/modules/pdf/rasterize.js 'http://www.domain.ru/path/' /opt/www/files/12345.pdf A4 Не надо на каждый запрос запускать phantomjs. Это очень низкопроизводительный способ, да и nginx не умеет CGI. Надо, используя модуль webserver, входящий в поставку в phantomjs, реализовать, собственно, веб-сервер, который в event loop-е принимает запрос, выполняет необходимую процедуру и отдает ответ, после чего настроить проксирование из nginx. Как это делать, написано в документации на сайте phantomjs. Там же есть примеры. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Большая дисперсия времени выполнения запросов
On Aug 19, 2014, at 7:20 PM, yury_y nginx-fo...@nginx.us wrote: 6) если используются сторонние модули - причина может быть в них. 6 - из сторонних модулей только nginx-sla Вот в его локах и причина наверняка. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru