Re: Перечитка конфигураций nginx
5-7 секунд еще не долго. Вот минут 5 - это было больно. И насколько я помню, влияет не число инклудов, а число локейшенов и апстримов. On Thu, 7 Jul 2022 at 09:54, ru4ag wrote: > Здравствуйте. > > Испольузем на больших серверах панель ISPmanager, в качестве веб-сервов > связка nginx+apache(в некоторых случая nginx+php-fpm), столкнулись с такой > ситуация что выполнение команды nginx -t может происходить более чем 5-8 > секунд, что напрямую влияет на работу панели и т.д., в ходе анализа > выявленно что для каждого домена панель создает несколько include, и один > из > них "подключает" 7-8 стандартных файлов с директории > /etc/nginx/vhosts-includes/ и выходит что при каждом nginx -t проверяеться > конфигурация домена, и каждого из его includ'ов, и в результате из общего > количества открытия файлов во время nginx -t(используя просмотр через > strace) в ~60тис файлов, 30тис обращений являються обращениями к одним и > тем > же 8 файлам. То есть по 3,5тис обращений на одини тот же файл. > > Вот и возникакет вопрос, ести ли какой то функционал возможно-го кеша, что > бы подключенные через include одни и те же файлы не проверялись при > 2,3,4...проверке(т.к. достаточно 1 раз проверить), и если нет(что скорее > всего), стоит ли ожидать какой-то такой реализации в ядре nginx(как по мне > "загнать" файл в кеш, и при последующей его проверка во время выполнения > nginx -t/reload/restart уже не проверять)? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,294669,294669#msg-294669 > > ___ > nginx-ru mailing list -- nginx-ru@nginx.org > To unsubscribe send an email to nginx-ru-le...@nginx.org > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
Re: Можно ли сгенерировать случайную строку в переменну так как это делает nginx для request id?
Можно попробовать сторонние модули, вроде lua или js. On Thu, 13 May 2021 at 01:07, budarin wrote: > Мне нужно для CSP политики генерировать случайный nonce для каждого запроса > и записывать его в заголовок политики и затем этот же none передать в > заголовках апстриму > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,291507,291507#msg-291507 > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit и его лог
Я прошу прощения, но все же можно ли выдрать по мотивам последнего патча хоть что-то еще, что, вероятно, вернул интерпретатор? Не только код, но может быть и хоть какое-то сообщение, а-ля дебаг-хардкор-только не в продакшн? Все exception в коде всегда имеют сообщение, но 500-е коды продолжаются. пн, 15 июл. 2019 г. в 15:51, Валентин Бартенев : > On Sunday 14 July 2019 22:09:01 Anton Kiryushkin wrote: > > Валентин, спасибо, за ваш совет, пересобрал Unit и получил довольно > > загадочную картину. К примеру. > > Вот сообщение в логе Unit: > > 2019/07/15 00:02:48.152 [warn] 20971#20971 [unit] #174772: application > > returned 500 response > > > > Окей, идем в лог ошибок php и ищем, что ж было: > > [15-Jul-2019 00:02:48 Europe/Moscow] Failed to connect [111]: Connection > > refused > > > > Внимание вопрос. Как тут узнать причину? > > > > Ни в исходниках интерпретатора PHP, ни в исходниках Unit-а нет таких > строчек. > > Следовательно строчка генерируется и пишется самими php скриптами. Имеет > смысл > сделать grep по всем php скриптам и таким образом найти где именно > создается эта > строчка и генерируется 500-ый ответ. > > С php-fpm в данном случае было бы ровно то же самое. > > -- > Валентин Бартенев > > > > > ср, 3 июл. 2019 г. в 18:47, Валентин Бартенев : > > > > > On Wednesday 03 July 2019 12:47:01 Anton Kiryushkin wrote: > > > > Спасибо за ваш ответ. > > > > > > > > Ответ от php-fpm я мог найти в error-log nginx-a. Ну я не скажу, > какую > > > > именно. Еще раз, проблема заключается в том, что в логе в access.log > > > nginx > > > > есть 500-й код ответа. Но причину этого 500-го кода нельзя найти в > логе > > > > ошибок php (а там прописана опция error_log), и логе unit и в логе > nginx, > > > > потому что там в принципе не должно быть этих ошибок. В случае с fpm > в > > > логе > > > > ошибок nginx гарантированно причину можно было найти. Приложение не > > > > возвращает просто так 500-ю ошибку. > > > > > > > > Поэтому и возник вопрос, как же можно заставить unit писать лог любых > > > своих > > > > ошибок в какой-то файл. Ну или куда вообще можно было бы копать, так > как > > > > возможные вещи, которые есть возможность предпринять в php, на мой > > > взгляд, > > > > предприняты. > > > [..] > > > > > > В error-log nginx писалось то, что приходило от php-fpm через > stderr-канал, > > > а тот в свою очередь посылал туда то, что php писал в stderr. > > > > > > В случае Unit-а весь stderr из php направляется в unit.log и > собственно там > > > и должен быть. > > > > > > Могу предложить попробовать собрать php модуль с патчем ниже. В этом > > > случае > > > всякий раз, когда php-интерпретатор возвращает ответ с 500-ым кодом, в > > > unit.log > > > будет об этом запись. > > > > > > 2019/07/03 20:45:02.899 [warn] 14919#14919 [unit] #7: application > returned > > > 500 response > > > > > > Это, как минимум, позволит исключить ситуацию, что 500-ую генерирует > сам > > > Unit > > > и не сообщает об этом по какой-то причине. > > > > > > -- > > > Валентин Бартенев > > > > > > > > > diff -r 2b068c8361f9 src/nxt_php_sapi.c > > > --- a/src/nxt_php_sapi.cTue Jul 02 16:44:08 2019 +0300 > > > +++ b/src/nxt_php_sapi.cWed Jul 03 20:32:38 2019 +0300 > > > @@ -774,6 +774,10 @@ nxt_php_send_headers(sapi_headers_struct > > > status = 200; > > > } > > > > > > +if (status == 500) { > > > + nxt_unit_req_warn(req, "application returned 500 response"); > > > +} > > > + > > > rc = nxt_unit_response_init(req, status, fields_count, resp_size); > > > if (nxt_slow_path(rc != NXT_UNIT_OK)) { > > > return SAPI_HEADER_SEND_FAILED; > > > > > > > > > ___ > > > nginx-ru mailing list > > > nginx-ru@nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > -- > > Best regards, > > Anton Kiryushkin > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit и его лог
Валентин, спасибо, за ваш совет, пересобрал Unit и получил довольно загадочную картину. К примеру. Вот сообщение в логе Unit: 2019/07/15 00:02:48.152 [warn] 20971#20971 [unit] #174772: application returned 500 response Окей, идем в лог ошибок php и ищем, что ж было: [15-Jul-2019 00:02:48 Europe/Moscow] Failed to connect [111]: Connection refused Внимание вопрос. Как тут узнать причину? ср, 3 июл. 2019 г. в 18:47, Валентин Бартенев : > On Wednesday 03 July 2019 12:47:01 Anton Kiryushkin wrote: > > Спасибо за ваш ответ. > > > > Ответ от php-fpm я мог найти в error-log nginx-a. Ну я не скажу, какую > > именно. Еще раз, проблема заключается в том, что в логе в access.log > nginx > > есть 500-й код ответа. Но причину этого 500-го кода нельзя найти в логе > > ошибок php (а там прописана опция error_log), и логе unit и в логе nginx, > > потому что там в принципе не должно быть этих ошибок. В случае с fpm в > логе > > ошибок nginx гарантированно причину можно было найти. Приложение не > > возвращает просто так 500-ю ошибку. > > > > Поэтому и возник вопрос, как же можно заставить unit писать лог любых > своих > > ошибок в какой-то файл. Ну или куда вообще можно было бы копать, так как > > возможные вещи, которые есть возможность предпринять в php, на мой > взгляд, > > предприняты. > [..] > > В error-log nginx писалось то, что приходило от php-fpm через stderr-канал, > а тот в свою очередь посылал туда то, что php писал в stderr. > > В случае Unit-а весь stderr из php направляется в unit.log и собственно там > и должен быть. > > Могу предложить попробовать собрать php модуль с патчем ниже. В этом > случае > всякий раз, когда php-интерпретатор возвращает ответ с 500-ым кодом, в > unit.log > будет об этом запись. > > 2019/07/03 20:45:02.899 [warn] 14919#14919 [unit] #7: application returned > 500 response > > Это, как минимум, позволит исключить ситуацию, что 500-ую генерирует сам > Unit > и не сообщает об этом по какой-то причине. > > -- > Валентин Бартенев > > > diff -r 2b068c8361f9 src/nxt_php_sapi.c > --- a/src/nxt_php_sapi.cTue Jul 02 16:44:08 2019 +0300 > +++ b/src/nxt_php_sapi.cWed Jul 03 20:32:38 2019 +0300 > @@ -774,6 +774,10 @@ nxt_php_send_headers(sapi_headers_struct > status = 200; > } > > +if (status == 500) { > +nxt_unit_req_warn(req, "application returned 500 response"); > +} > + > rc = nxt_unit_response_init(req, status, fields_count, resp_size); > if (nxt_slow_path(rc != NXT_UNIT_OK)) { > return SAPI_HEADER_SEND_FAILED; > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
too long parameter
Здравствуйте. Пока не получается воспроизвести проблему, но в логе ошибок переодически возникает сообщение вида: too long parameter "# На строке, которая, и является комментарием: # this is search location for service srv784 Таких строчек-комментариев (конфиг генерируется скриптом) у меня в файле довольно много. Все бы и ничего, но nginx по каким-то причинам после этого сообщения перестает слушать порты на какое-то время. Что с этим можно сделать и вообще что это такое? Гугл не помог. Версия nginx 1.12.0. Сам конфиг, ну примитивный, 5 location без реврайтов и regexp. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit и его лог
Спасибо за ваш ответ. Ответ от php-fpm я мог найти в error-log nginx-a. Ну я не скажу, какую именно. Еще раз, проблема заключается в том, что в логе в access.log nginx есть 500-й код ответа. Но причину этого 500-го кода нельзя найти в логе ошибок php (а там прописана опция error_log), и логе unit и в логе nginx, потому что там в принципе не должно быть этих ошибок. В случае с fpm в логе ошибок nginx гарантированно причину можно было найти. Приложение не возвращает просто так 500-ю ошибку. Поэтому и возник вопрос, как же можно заставить unit писать лог любых своих ошибок в какой-то файл. Ну или куда вообще можно было бы копать, так как возможные вещи, которые есть возможность предпринять в php, на мой взгляд, предприняты. ср, 3 июл. 2019 г. в 12:10, Валентин Бартенев : > On Wednesday 03 July 2019 10:36:52 Anton Kiryushkin wrote: > > Валентин, подскажите, тогда, пожалуйста. > > > > У меня вот есть связка nginx + unit (php). > > И иногда на сайте получается 500-я ошибка. Логи php пишутся и там кроме > > огромного количества строчек вида: > > > > [03-Jul-2019 10:46:01 Europe/Moscow] Failed to connect [111]: Connection > > refused > > > > > > Нет больше ничего полезного. Смотрю в лог unit и там тоже нет хоть > > какого-либо прямого или косвенного сообщения о том, что пошло не так. > Кроме > > того, о чем я писал выше. > > В этом смысле nginx + php-fpm давал более прозрачную картину мира. Есть > > ошибка - она есть в логе. Тут вот как-то не всегда. > [..] > > А какую ошибку в этом случае писал php-fpm? Можно пример? > > Я бы посмотрел по исходникам php, где она возникает и в каких случаях > пишется. > > > > Может быть я что-то не знаю или упустил во время настройки? Конфиг unit у > > меня весьма тривиальный: > > > > { > > "listeners": { > > "127.0.0.1:8091": { > > "application": "direct_php" > > } > >}, > >"direct_php": { > > "type": "php5.6", > > "processes": { > > "max": 13, > > "spare": 0 > > }, > > > > "user": "www-data", > > "group": "www-data", > > "root": "/data/site.ru/web/", > > "index": "index.php" > > } > > }, > > "access_log": "/var/log/nginx/unit_access.log" > > } > > > > Может быть у меня воркеры иногда заканчиваются и эта 500я вовсе не от > php, > > а от unit, но почему бы тогда куда-то об этом не сообщать? > [..] > > Unit обычно громко ругается в лог, если что-то пошло не так и он сам был > вынужден сгенерировать 500-ую ошибку. Но если 500 код ответа был возвращен > из приложения нормальным путем, то тут нечего больше добавить. > > Также как и php-fpm мы отдаем запрос php интерпретатору, тот генерирует > какой-то ответ с определенным кодом и отдает его обратно. Попутно он > может сам что-то логгировать, но это никак не конролируется со стороны > SAPI, будь то php-fpm, будь то Unit. > > Возможно имеет смысл добавить логгирование о том, что вот мол приложение > вернуло нам 500, чтобы не возникало вопросов, откуда этот ответ родился. > > Стоит учесть, что php-fpm и libphp (которую Unit использует) обычно > используют > разные php.ini файлы. И настройки логгирования и репортинга ошибок там > могут > отличаться. Имеет смысл сделать ревизию используемого с Unit-том php.ini > на > предмет соответствующих настроек: > > https://www.php.net/manual/en/errorfunc.configuration.php > > -- > Валентин Бартенев > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit и его лог
Валентин, подскажите, тогда, пожалуйста. У меня вот есть связка nginx + unit (php). И иногда на сайте получается 500-я ошибка. Логи php пишутся и там кроме огромного количества строчек вида: [03-Jul-2019 10:46:01 Europe/Moscow] Failed to connect [111]: Connection refused Нет больше ничего полезного. Смотрю в лог unit и там тоже нет хоть какого-либо прямого или косвенного сообщения о том, что пошло не так. Кроме того, о чем я писал выше. В этом смысле nginx + php-fpm давал более прозрачную картину мира. Есть ошибка - она есть в логе. Тут вот как-то не всегда. Может быть я что-то не знаю или упустил во время настройки? Конфиг unit у меня весьма тривиальный: { "listeners": { "127.0.0.1:8091": { "application": "direct_php" } }, "direct_php": { "type": "php5.6", "processes": { "max": 13, "spare": 0 }, "user": "www-data", "group": "www-data", "root": "/data/site.ru/web/", "index": "index.php" } }, "access_log": "/var/log/nginx/unit_access.log" } Может быть у меня воркеры иногда заканчиваются и эта 500я вовсе не от php, а от unit, но почему бы тогда куда-то об этом не сообщать? вс, 16 июн. 2019 г. в 04:29, Валентин Бартенев : > On Sunday, 16 June 2019 00:31:15 MSK Anton Kiryushkin wrote: > > Здравствуйте. > > > > Подскажите, пожалуйста, как правильно читать лог unitd: > > > > 2019/06/15 23:08:18 [info] 890#1012 *959 shutdown(182, 2) failed (107: > > Transport endpoint is not connected) > > 2019/06/15 23:08:25 [info] 890#1011 *1008 shutdown(182, 2) failed (107: > > Transport endpoint is not connected) > > 2019/06/15 23:09:16 [info] 890#1004 *1009 shutdown(186, 2) failed (107: > > Transport endpoint is not connected) > > 2019/06/15 23:09:21 [info] 890#1013 *1266 shutdown(180, 2) failed (107: > > Transport endpoint is not connected) > > 2019/06/15 23:10:25 [info] 890#1007 *1493 shutdown(187, 2) failed (107: > > Transport endpoint is not connected) > > 2019/06/15 23:10:40 [info] 890#1007 *1633 shutdown(176, 2) failed (107: > > Transport endpoint is not connected) > > 2019/06/15 23:10:43 [info] 890#1007 *1647 shutdown(183, 2) failed (107: > > Transport endpoint is not connected) > > 2019/06/15 23:10:46 [info] 890#1012 *1653 shutdown(182, 2) failed (107: > > Transport endpoint is not connected) > > 2019/06/15 23:10:50 [info] 890#1013 *1682 shutdown(183, 2) failed (107: > > Transport endpoint is not connected) > > 2019/06/15 23:11:14 [info] 890#1007 *1769 shutdown(179, 2) failed (107: > > Transport endpoint is not connected) > > Клиент успел закрыть соединение раньше, чем это сделал Unit. > Абсолютно нормальная ситуация. > > > > 2019/06/15 23:11:18 [error] 890#1007 *1782 send(180, 7F1195A6AF80, > 1283623) > > failed (32: Broken pipe) > > Клиент закрыл соединение не дождавшись ответа, так бывает. > > > > > > Тут есть info и error. Верно ли, что info это про то, что запрос > > завершился, все хорошо, просто ответ был отправлен клиенту. Про что > error? > > > > Попутно, можно ли keepalive использовать между nginx и unit? > > > > Можно. > > -- > Валентин Бартенев > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
unit и его лог
Здравствуйте. Подскажите, пожалуйста, как правильно читать лог unitd: 2019/06/15 23:08:18 [info] 890#1012 *959 shutdown(182, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:08:25 [info] 890#1011 *1008 shutdown(182, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:09:16 [info] 890#1004 *1009 shutdown(186, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:09:21 [info] 890#1013 *1266 shutdown(180, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:10:25 [info] 890#1007 *1493 shutdown(187, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:10:40 [info] 890#1007 *1633 shutdown(176, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:10:43 [info] 890#1007 *1647 shutdown(183, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:10:46 [info] 890#1012 *1653 shutdown(182, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:10:50 [info] 890#1013 *1682 shutdown(183, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:11:14 [info] 890#1007 *1769 shutdown(179, 2) failed (107: Transport endpoint is not connected) 2019/06/15 23:11:18 [error] 890#1007 *1782 send(180, 7F1195A6AF80, 1283623) failed (32: Broken pipe) Тут есть info и error. Верно ли, что info это про то, что запрос завершился, все хорошо, просто ответ был отправлен клиенту. Про что error? Попутно, можно ли keepalive использовать между nginx и unit? -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: непонятное поведение
Здравствуйте. Без конфигурационного сервера всем тоже не понятно. On Fri, 7 Jun 2019 at 10:37, Aln Kapa wrote: > Добрый день. > > Случайно наткнулся вот на это: > > 185.172.110.221 - - [07/Jun/2019:07:03:52 +0300] "GET > http://185.172.110.221:80/proxy_get.php?ip=62.122.99.46=bar HTTP/1.0" > 302 138 "-" "HTTP-Proxy-Tester" > > Правильно ли я понимаю, так как 185.172.110.221 не мой IP, соответственно > ответ должен быть 4xx. > Почему 302 вот не разу не понял? > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Unitd + client_addr
Конечно, нет никаких проблем положить в X-Real-IP. Однако, мой вопрос был про REMOTE_ADDR. пт, 31 мая 2019 г. в 23:13, Vadim A. Misbakh-Soloviov : > Если проксируется сквозь NginX, то, вроде как, вообще никаких проблем > положить > IP в какой-нибудь X-заголовок и брать оттуда... > > В письме от пятница, 31 мая 2019 г. 18:51:15 MSK пользователь Anton > Kiryushkin > написал: > > Здравствуйте. > > > > Не подскажете, какова судьба вот этого тикета: > > https://github.com/nginx/unit/issues/132 > > > > А так же, возможно, есть прямой способ, как получить в php, запускаемом > > через unit клиентский айпишник? Сейчас там 127.0.0.1, что очень и очень > > плохо и ставит использование unit под жирный вопрос. > > > > -- > > Best regards, > > Anton Kiryushkin > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Unitd + client_addr
Здравствуйте. Не подскажете, какова судьба вот этого тикета: https://github.com/nginx/unit/issues/132 А так же, возможно, есть прямой способ, как получить в php, запускаемом через unit клиентский айпишник? Сейчас там 127.0.0.1, что очень и очень плохо и ставит использование unit под жирный вопрос. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unitd + php5.6
Валентин, спасибо, как-то я это или пропустил в доке, или не написано. Теперь собралось, вопрос снят. вт, 23 апр. 2019 г. в 15:13, Валентин Бартенев : > On Tuesday 23 April 2019 14:42:48 Anton Kiryushkin wrote: > > Здравствуйте. > > > > Пытаюсь собрать модуль для unitd для запуска php5.6 (на сервере есть и > 7-й, > > но в данном случае нужен именно 5-й). > > > > Сам php5.6 есть, у него есть php-config5.6, однако unitd при сборке > упорно > > утверждает, что у него что-то не так: > > > > # ./configure php --module=php5.6 --config=/usr/bin/php-config5.6 > > --lib-path=/usr/lib/apache2/modules > > Это видимо директория с модулями Apache, которые к Unit-у никакого > отношения не имеют. > > > > configuring PHP module > > checking for PHP ... found > > + PHP SAPI: [apache2handler cgi cli fpm] > > В списке нет embed, т.е. php был собран без библиотеки libphp. > > > > checking for PHP embed SAPI ... not found > > > > ./configure: error: no PHP embed SAPI found. > > > > > > Как бы точно понять, что не так? Файлы-то есть. > > > > $ ./configure php --module=php56 --config=/usr/lib64/php5.6/bin/php-config > --lib-path=/usr/lib64/php5.6/lib64 > configuring PHP module > checking for PHP ... found > + PHP SAPI: [embed cli cgi fpm] > checking for PHP embed SAPI ... found > checking for PHP zend_signal_startup() ... not found > checking for PHP version ... 5.6.38-pl0-gentoo > + PHP module: php56.unit.so > > $ ls /usr/lib64/php5.6/lib64 > libphp5.so opcache.so > > $ /usr/lib64/php5.6/bin/php-config --php-sapis > embed cli cgi fpm > > $ /usr/lib64/php5.6/bin/php-config --configure-options | grep embed > --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu > --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share > --sysconfdir=/etc --localstatedir=/var/lib > --docdir=/usr/share/doc/php-5.6.38 --htmldir=/usr/share/doc/php-5.6.38/html > --prefix=/usr/lib64/php5.6 --mandir=/usr/lib64/php5.6/man > --infodir=/usr/lib64/php5.6/info --libdir=/usr/lib64/php5.6/lib > --with-libdir=lib64 --localstatedir=/var --without-pear > --enable-maintainer-zts --disable-bcmath --without-bz2 --disable-calendar > --disable-gcov --disable-ctype --without-curl --disable-dom > --without-enchant --disable-exif --disable-fileinfo --disable-filter > --disable-ftp --without-gettext --without-gmp --enable-hash --without-mhash > --without-iconv --disable-intl --disable-ipv6 --disable-json > --without-kerberos --disable-libxml --without-libxml-dir --disable-mbstring > --without-mcrypt --without-mssql --without-onig --without-openssl > --without-openssl-dir --disable-pcntl --disable-phar --disable-pdo > --enable-opcache --without-pgsql --disable-posix --without-pspell > --without-recode --disable-simplexml --disable-shmop --without-snmp > --disable-soap --disable-sockets --without-sqlite3 --without-sybase-ct > --disable-sysvmsg --disable-sysvsem --disable-sysvshm --without-tidy > --disable-tokenizer --disable-wddx --disable-xml --disable-xmlreader > --disable-xmlwriter --without-xmlrpc --without-xsl --disable-zip > --without-zlib --disable-debug --without-cdb --without-db4 > --disable-flatfile --without-gdbm --disable-inifile --without-qdbm > --without-freetype-dir --without-t1lib --disable-gd-jis-conv > --without-jpeg-dir --without-png-dir --without-xpm-dir --without-vpx-dir > --without-gd --without-interbase --without-mysql --with-mysqli=mysqlnd > --without-mysql-sock --without-unixODBC --without-iodbc --without-oci8 > --with-readline=/usr --without-libedit --disable-session --with-pic > --with-pcre-regex=/usr --with-pcre-dir=/usr > --cache-file=/dev/shm/portage/dev-lang/php-5.6.38/temp/config.cache > --with-config-file-path=/etc/php/embed-php5.6 > --with-config-file-scan-dir=/etc/php/embed-php5.6/ext-active --enable-embed > --disable-cli --disable-cgi --disable-fpm --without-apxs2 > build_alias=x86_64-pc-linux-gnu host_alias=x86_64-pc-linux-gnu > CFLAGS=-Ofast -march=native -pipe LDFLAGS=-Wl,-O1 -Wl,--as-needed CPPFLAGS= > CXXFLAGS=-Ofast -march=native -pipe > > > Среди опций можно заметить --enable-embed. > > -- > Валентин Бартене > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
unitd + php5.6
Здравствуйте. Пытаюсь собрать модуль для unitd для запуска php5.6 (на сервере есть и 7-й, но в данном случае нужен именно 5-й). Сам php5.6 есть, у него есть php-config5.6, однако unitd при сборке упорно утверждает, что у него что-то не так: # ./configure php --module=php5.6 --config=/usr/bin/php-config5.6 --lib-path=/usr/lib/apache2/modules configuring PHP module checking for PHP ... found + PHP SAPI: [apache2handler cgi cli fpm] checking for PHP embed SAPI ... not found ./configure: error: no PHP embed SAPI found. Как бы точно понять, что не так? Файлы-то есть. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Статическая сборка nginx с GD
Я взял код из лога и попробовал его собрать ровно так, как написано. Строка моего configure следующая: ./configure --prefix=/usr --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --add-module=/usr/src/naxsi/naxsi_src --with-debug --with-http_v2_module --with-cc-opt="-static -static-libgcc" --with-ld-opt="-static -lm" --with-cpu-opt=generic --with-openssl=./openssl-1.0.2r --with-stream --with-stream_ssl_module --user=www-data --with-http_image_filter_module Что-то тут уже устаревшее, но это не очень важно. Выпадает ошибка: checking for GD library ... not found checking for GD library in /usr/local/ ... not found checking for GD library in /usr/pkg/ ... not found checking for GD library in /opt/local/ ... not found Окей. Берем код автотеста: #include #include #include int main(void) { gdImagePtr img = gdImageCreateFromGifPtr(1, NULL); (void) img; return 0; } Собираем: cc -static -static-libgcc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I /usr/pkg/include -o objs/autotest objs/autotest.c -static -lm -L/usr/pkg/lib -lgd (строчка из того же лога). Не собирается. Однако, если подвинуть -lm в конец: cc -static -static-libgcc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I /usr/pkg/include -o objs/autotest objs/autotest.c -static -L/usr/pkg/lib -lgd -lm Все соберется. Вопрос, как передвинуть на уровне сборки? вс, 7 апр. 2019 г. в 12:34, Anton Kiryushkin : > Да, конечно, есть: > > # find /usr -type f -name 'libm.a' > /usr/lib/x86_64-linux-gnu/libm.a > > Да, я попробовал поставить -lm перед -static, это мне тоже не помогло. > К слову, libgd тоже там есть: > # find /usr -type f -name 'libgd.a' > /usr/lib/x86_64-linux-gnu/libgd.a > > Подскажите, пожалуйста, где эти тесты лежат в исходнике, поправлю > локально, как обычно это делаю с php. > > сб, 6 апр. 2019 г. в 19:22, Igor Sysoev : > >> А статическая libm.a есть? >> Можно попробовать поставить -lm до -static: >> >> --with-ld-opt="-lm -static ... >> >> -- >> Igor Sysoev >> http://nginx.com >> >> > On 6 Apr 2019, at 14:57, Anton Kiryushkin wrote: >> > >> > Ситуация очень напоминает предыдущую: >> > >> > cc -static -static-libgcc -lm -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I >> /usr/pkg/include -o objs/autotest objs/autotest.c -static -lm >> -L/usr/pkg/lib -lgd >> > -- >> > >> > >> > checking for GD library in /opt/local/ >> > >> > /opt/local/lib/libgd.a(gd.o): In function `lsqrt': >> > /usr/src/libgd/src/gd.c:1722: undefined reference to `sqrt' >> > /opt/local/lib/libgd.a(gd.o): In function `gdImageDashedLine': >> > /usr/src/libgd/src/gd.c:1471: undefined reference to `atan2' >> > /usr/src/libgd/src/gd.c:1471: undefined reference to `sin' >> > /usr/src/libgd/src/gd.c:1520: undefined reference to `atan2' >> > /usr/src/libgd/src/gd.c:1520: undefined reference to `sin' >> > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': >> > /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' >> > /usr/src/libgd/src/gd.c:3514: undefined reference to `cos' >> > /opt/local/lib/libgd.a(gd.o): In function `gdImageLine': >> > /usr/src/libgd/src/gd.c:1394: undefined reference to `atan2' >> > /usr/src/libgd/src/gd.c:1394: undefined reference to `sin' >> > /usr/src/libgd/src/gd.c:1333: undefined reference to `atan2' >> > /usr/src/libgd/src/gd.c:1333: undefined reference to `cos' >> > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': >> > /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' >> > /usr/src/libgd/src/gd.c:3514: undefined reference to `sin' >> > /opt/local/lib/libgd.a(gd.o): In function `gdImageCopyRotated': >> > /usr/src/libgd/src/gd.c:2792: undefined reference to `sincos' >> > /usr/src/libgd/src/gd.c:2791: undefined reference to `sqrt' >> > collect2: error: ld returned 1 exit status >> > -- >> > >> > Версия nginx 1.15.10. gcc version 4.8.2. >> > >> > сб, 6 апр. 2
Re: Статическая сборка nginx с GD
Да, конечно, есть: # find /usr -type f -name 'libm.a' /usr/lib/x86_64-linux-gnu/libm.a Да, я попробовал поставить -lm перед -static, это мне тоже не помогло. К слову, libgd тоже там есть: # find /usr -type f -name 'libgd.a' /usr/lib/x86_64-linux-gnu/libgd.a Подскажите, пожалуйста, где эти тесты лежат в исходнике, поправлю локально, как обычно это делаю с php. сб, 6 апр. 2019 г. в 19:22, Igor Sysoev : > А статическая libm.a есть? > Можно попробовать поставить -lm до -static: > > --with-ld-opt="-lm -static ... > > -- > Igor Sysoev > http://nginx.com > > > On 6 Apr 2019, at 14:57, Anton Kiryushkin wrote: > > > > Ситуация очень напоминает предыдущую: > > > > cc -static -static-libgcc -lm -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I > /usr/pkg/include -o objs/autotest objs/autotest.c -static -lm > -L/usr/pkg/lib -lgd > > -- > > > > > > checking for GD library in /opt/local/ > > > > /opt/local/lib/libgd.a(gd.o): In function `lsqrt': > > /usr/src/libgd/src/gd.c:1722: undefined reference to `sqrt' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageDashedLine': > > /usr/src/libgd/src/gd.c:1471: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:1471: undefined reference to `sin' > > /usr/src/libgd/src/gd.c:1520: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:1520: undefined reference to `sin' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': > > /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:3514: undefined reference to `cos' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageLine': > > /usr/src/libgd/src/gd.c:1394: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:1394: undefined reference to `sin' > > /usr/src/libgd/src/gd.c:1333: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:1333: undefined reference to `cos' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': > > /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:3514: undefined reference to `sin' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageCopyRotated': > > /usr/src/libgd/src/gd.c:2792: undefined reference to `sincos' > > /usr/src/libgd/src/gd.c:2791: undefined reference to `sqrt' > > collect2: error: ld returned 1 exit status > > -- > > > > Версия nginx 1.15.10. gcc version 4.8.2. > > > > сб, 6 апр. 2019 г. в 12:14, Igor Sysoev : > > А что в autoconf.err ? > > > > -- > > Igor Sysoev > > http://nginx.com > > > > > On 6 Apr 2019, at 14:07, Anton Kiryushkin wrote: > > > > > > Добавил и не помогло. > > > > > > сб, 6 апр. 2019 г. в 11:06, Igor Sysoev : > > > > On 6 Apr 2019, at 12:54, Anton Kiryushkin wrote: > > > > > > > > Здравствуйте. > > > > > > > > Подскажите, пожалуйста, почему nginx в данном случае никак не может > собраться статически с libgd: > > > > > > > > -- > > > > cc -static -static-libgcc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I > /usr/pkg/include -o objs/autotest objs/autotest.c -static -L/usr/pkg/lib > -lgd > > > > -- > > > > > > > > > > > > checking for GD library in /opt/local/ > > > > > > > > /opt/local/lib/libgd.a(gd.o): In function `lsqrt': > > > > /usr/src/libgd/src/gd.c:1722: undefined reference to `sqrt' > > > > /opt/local/lib/libgd.a(gd.o): In function `gdImageDashedLine': > > > > /usr/src/libgd/src/gd.c:1471: undefined reference to `atan2' > > > > /usr/src/libgd/src/gd.c:1471: undefined reference to `sin' > > > > /usr/src/libgd/src/gd.c:1520: undefined reference to `atan2' > > > > /usr/src/libgd/src/gd.c:1520: undefined reference to `sin' > > > > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': > > > > /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' > > > > /usr/src/libgd/src/gd.c:3514: undefined reference to `cos' > > > > /opt/local/lib/libgd.a(gd.o): In function `gdImageLine': > > > > /usr/src/libgd/src/gd.c:1394: undefined reference to `atan2' > > > > /usr/src/libgd/src/gd.c:1394: undefined reference to `sin' > > > > /usr/src/libgd/src/gd.c:1333: undefined reference to `atan2' > > > > /usr/src/libgd/src/gd.c:1333: undefined reference to `cos' > > > > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': > > > > /usr/src/l
nginx: [emerg] getpwnam("www-data") failed
При обновлении на 1.15.10 поймал такую картину. В конфиге полжизни было написано: user www-data; Пользователь есть, группа есть. Все ищется по /etc/passwd и /etc/group. Что поменялось в nginx? -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Статическая сборка nginx с GD
Ситуация очень напоминает предыдущую: cc -static -static-libgcc -lm -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I /usr/pkg/include -o objs/autotest objs/autotest.c -static -lm -L/usr/pkg/lib -lgd -- checking for GD library in /opt/local/ /opt/local/lib/libgd.a(gd.o): In function `lsqrt': /usr/src/libgd/src/gd.c:1722: undefined reference to `sqrt' /opt/local/lib/libgd.a(gd.o): In function `gdImageDashedLine': /usr/src/libgd/src/gd.c:1471: undefined reference to `atan2' /usr/src/libgd/src/gd.c:1471: undefined reference to `sin' /usr/src/libgd/src/gd.c:1520: undefined reference to `atan2' /usr/src/libgd/src/gd.c:1520: undefined reference to `sin' /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' /usr/src/libgd/src/gd.c:3514: undefined reference to `cos' /opt/local/lib/libgd.a(gd.o): In function `gdImageLine': /usr/src/libgd/src/gd.c:1394: undefined reference to `atan2' /usr/src/libgd/src/gd.c:1394: undefined reference to `sin' /usr/src/libgd/src/gd.c:1333: undefined reference to `atan2' /usr/src/libgd/src/gd.c:1333: undefined reference to `cos' /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' /usr/src/libgd/src/gd.c:3514: undefined reference to `sin' /opt/local/lib/libgd.a(gd.o): In function `gdImageCopyRotated': /usr/src/libgd/src/gd.c:2792: undefined reference to `sincos' /usr/src/libgd/src/gd.c:2791: undefined reference to `sqrt' collect2: error: ld returned 1 exit status -- Версия nginx 1.15.10. gcc version 4.8.2. сб, 6 апр. 2019 г. в 12:14, Igor Sysoev : > А что в autoconf.err ? > > -- > Igor Sysoev > http://nginx.com > > > On 6 Apr 2019, at 14:07, Anton Kiryushkin wrote: > > > > Добавил и не помогло. > > > > сб, 6 апр. 2019 г. в 11:06, Igor Sysoev : > > > On 6 Apr 2019, at 12:54, Anton Kiryushkin wrote: > > > > > > Здравствуйте. > > > > > > Подскажите, пожалуйста, почему nginx в данном случае никак не может > собраться статически с libgd: > > > > > > -- > > > cc -static -static-libgcc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I > /usr/pkg/include -o objs/autotest objs/autotest.c -static -L/usr/pkg/lib > -lgd > > > -- > > > > > > > > > checking for GD library in /opt/local/ > > > > > > /opt/local/lib/libgd.a(gd.o): In function `lsqrt': > > > /usr/src/libgd/src/gd.c:1722: undefined reference to `sqrt' > > > /opt/local/lib/libgd.a(gd.o): In function `gdImageDashedLine': > > > /usr/src/libgd/src/gd.c:1471: undefined reference to `atan2' > > > /usr/src/libgd/src/gd.c:1471: undefined reference to `sin' > > > /usr/src/libgd/src/gd.c:1520: undefined reference to `atan2' > > > /usr/src/libgd/src/gd.c:1520: undefined reference to `sin' > > > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': > > > /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' > > > /usr/src/libgd/src/gd.c:3514: undefined reference to `cos' > > > /opt/local/lib/libgd.a(gd.o): In function `gdImageLine': > > > /usr/src/libgd/src/gd.c:1394: undefined reference to `atan2' > > > /usr/src/libgd/src/gd.c:1394: undefined reference to `sin' > > > /usr/src/libgd/src/gd.c:1333: undefined reference to `atan2' > > > /usr/src/libgd/src/gd.c:1333: undefined reference to `cos' > > > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': > > > /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' > > > /usr/src/libgd/src/gd.c:3514: undefined reference to `sin' > > > /opt/local/lib/libgd.a(gd.o): In function `gdImageCopyRotated': > > > /usr/src/libgd/src/gd.c:2792: undefined reference to `sincos' > > > /usr/src/libgd/src/gd.c:2791: undefined reference to `sqrt' > > > collect2: error: ld returned 1 exit status > > > -- > > > > > > Сам libgd собран в /opt/local с флагом static. К сожалению, мне > действительно нужна статическая сборка. Остается страдать и все же так не > делать или есть способ что-то тут сделать? > > > > Нужно добавить "-lm" в --with-ld-opt > > > > > > -- > > Igor Sysoev > > http://nginx.com > > ___ > > nginx-ru mailing list > > nginx-ru@nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > -- > > Best regards, > > Anton Kiryushkin > > > > ___ > > 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 -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Статическая сборка nginx с GD
Добавил и не помогло. сб, 6 апр. 2019 г. в 11:06, Igor Sysoev : > > On 6 Apr 2019, at 12:54, Anton Kiryushkin wrote: > > > > Здравствуйте. > > > > Подскажите, пожалуйста, почему nginx в данном случае никак не может > собраться статически с libgd: > > > > -- > > cc -static -static-libgcc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I > /usr/pkg/include -o objs/autotest objs/autotest.c -static -L/usr/pkg/lib > -lgd > > -- > > > > > > checking for GD library in /opt/local/ > > > > /opt/local/lib/libgd.a(gd.o): In function `lsqrt': > > /usr/src/libgd/src/gd.c:1722: undefined reference to `sqrt' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageDashedLine': > > /usr/src/libgd/src/gd.c:1471: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:1471: undefined reference to `sin' > > /usr/src/libgd/src/gd.c:1520: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:1520: undefined reference to `sin' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': > > /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:3514: undefined reference to `cos' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageLine': > > /usr/src/libgd/src/gd.c:1394: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:1394: undefined reference to `sin' > > /usr/src/libgd/src/gd.c:1333: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:1333: undefined reference to `cos' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': > > /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' > > /usr/src/libgd/src/gd.c:3514: undefined reference to `sin' > > /opt/local/lib/libgd.a(gd.o): In function `gdImageCopyRotated': > > /usr/src/libgd/src/gd.c:2792: undefined reference to `sincos' > > /usr/src/libgd/src/gd.c:2791: undefined reference to `sqrt' > > collect2: error: ld returned 1 exit status > > -- > > > > Сам libgd собран в /opt/local с флагом static. К сожалению, мне > действительно нужна статическая сборка. Остается страдать и все же так не > делать или есть способ что-то тут сделать? > > Нужно добавить "-lm" в --with-ld-opt > > > -- > Igor Sysoev > http://nginx.com > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Статическая сборка nginx с GD
Здравствуйте. Подскажите, пожалуйста, почему nginx в данном случае никак не может собраться статически с libgd: -- cc -static -static-libgcc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I /usr/pkg/include -o objs/autotest objs/autotest.c -static -L/usr/pkg/lib -lgd -- checking for GD library in /opt/local/ /opt/local/lib/libgd.a(gd.o): In function `lsqrt': /usr/src/libgd/src/gd.c:1722: undefined reference to `sqrt' /opt/local/lib/libgd.a(gd.o): In function `gdImageDashedLine': /usr/src/libgd/src/gd.c:1471: undefined reference to `atan2' /usr/src/libgd/src/gd.c:1471: undefined reference to `sin' /usr/src/libgd/src/gd.c:1520: undefined reference to `atan2' /usr/src/libgd/src/gd.c:1520: undefined reference to `sin' /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' /usr/src/libgd/src/gd.c:3514: undefined reference to `cos' /opt/local/lib/libgd.a(gd.o): In function `gdImageLine': /usr/src/libgd/src/gd.c:1394: undefined reference to `atan2' /usr/src/libgd/src/gd.c:1394: undefined reference to `sin' /usr/src/libgd/src/gd.c:1333: undefined reference to `atan2' /usr/src/libgd/src/gd.c:1333: undefined reference to `cos' /opt/local/lib/libgd.a(gd.o): In function `gdImageAALine': /usr/src/libgd/src/gd.c:3514: undefined reference to `atan2' /usr/src/libgd/src/gd.c:3514: undefined reference to `sin' /opt/local/lib/libgd.a(gd.o): In function `gdImageCopyRotated': /usr/src/libgd/src/gd.c:2792: undefined reference to `sincos' /usr/src/libgd/src/gd.c:2791: undefined reference to `sqrt' collect2: error: ld returned 1 exit status -- Сам libgd собран в /opt/local с флагом static. К сожалению, мне действительно нужна статическая сборка. Остается страдать и все же так не делать или есть способ что-то тут сделать? -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
unit
Здравствуйте. Пару дней назад влез таки попробовать этот новый софт. Настроил, то, что мне нужно было получилось за 10 минут. Но, позвольте вопрос. Верно ли я понимаю, что концепт заключается в том, чтобы, по сути, "запустить" один скрипт? То есть, к примеру, на порту 8300 у меня отвечает php5.6, который запускает скрипт index.php из папки /var/www/blablabla. Я не могу через порт 8300 разрешить запускать все скрипты из этой папки, только index.php. У меня правильное мнение сложилось, или я что-то недочитал и потому пишу немного глупости? -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Сервер по умолчанию для SSL
Вы можете сделать самоподписный сертификат для дефолтного хоста и надеяться на то, что все ваши клиенты умеют в SNI. 5 февраля 2018 г., 10:56 пользователь Anton Kiryushkin <sw...@fotofor.biz> написал: > Смотря какую задачу вы решаете. > > > 5 февраля 2018 г., 10:22 пользователь iotch <nginx-fo...@forum.nginx.org> > написал: > > > у вас для ssl'ового listen'а не указано "ssl" в аргументах >> >> Да, спасибо, в данном случае это не играет роли, судя по тестам. >> >> > Поэтому вы можете использовать там абсолютно любой. >> >> Так и делаю, но подумал, есть какое-то стандартное решение для таких >> случаев. >> >> Posted at Nginx Forum: https://forum.nginx.org/read.p >> hp?21,278349,278353#msg-278353 >> >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > > -- > Best regards, > Anton Kiryushkin > > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Сервер по умолчанию для SSL
Смотря какую задачу вы решаете. 5 февраля 2018 г., 10:22 пользователь iotch <nginx-fo...@forum.nginx.org> написал: > > у вас для ssl'ового listen'а не указано "ssl" в аргументах > > Да, спасибо, в данном случае это не играет роли, судя по тестам. > > > Поэтому вы можете использовать там абсолютно любой. > > Так и делаю, но подумал, есть какое-то стандартное решение для таких > случаев. > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,278349,278353#msg-278353 > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: unit-0.2 beta release
Простите за мою не понятливость. Но где в unit задается путь до php.ini? Используется сугубо тот, что был при сборке, или же можно как-то указать тот, с которым нужно запуститься? 2017-10-20 10:42 GMT+03:00 Igor Sysoev <i...@sysoev.ru>: > http://unit.nginx.org > > Changes with Unit 0.219 Oct > 2017 > >*) Feature: Go package improvements. > >*) Feature: configuration persistence. > >*) Feature: improved handling of configuration errors. > >*) Feature: application "timeout" property. > >*) Bugfix: Go application crashed under load. > >*) Bugfix: POST request for PHP were handled incorrectly. > >*) Bugfix: the router exited abnormally if all listeners had been > deleted. > >*) Bugfix: the router crashed under load. > >*) Bugfix: memory leak in the router. > > > -- > Igor Sysoev > http://nginx.com > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Как nginx читает конфиг
Здравствуйте. Расскажите, пожалуйста, в чем принципиальная разница в том, как nginx читает много upstream (например 4 тысячи) и тем, как nginx читает много location (например, тоже 4 тысячи). По ощущениям, второе он читает много дольше и тяжелее. И возможно ли в будущем, делать список подгружаемых location общим для двух разных серверов (имеется ввиду server_name). Например, если эти два сервера выполняют разную работу с одними и теми же location. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx slice module
Лог бросал в личку Роману, там нет ничего выдающегося, поэтому в рассылку его отправлять не буду. При этом, у меня получилось найти решение исходной проблемы. Способ из двух действий. 1. Прописал max_ranges 5 на всех серверах бэкенда. 2. Пересобрал nginx с патчем из вот этого треда: https://forum.nginx.org/read.php?2,225815,225826#msg-225826 После этого ошибки про неверный диапазон из лога ушли. 14 февраля 2017 г., 19:33 пользователь Roman Arutyunyan <a...@nginx.com> написал: > Все должно работать. Можете показать config и/или debug log? > > On Tue, Feb 14, 2017 at 07:10:29PM +0300, Anton Kiryushkin wrote: > > Позвольте еще задать вопрос. Насколько корректно nginx в случае работы с > > slice-модулем будет обрабатывать запрос с заголовком: > > > > Range: bytes=3744- > > > > Замечено интересное свойство. Первый такой запрос не отрабатывает. А > второй > > уже может. Схема работы простая nginx + slice -> nginx + mp4 на дисках. > > > > 14 февраля 2017 г., 17:59 пользователь Roman Arutyunyan <a...@nginx.com> > > написал: > > > > > Прямых огранчений нет. Но если слайсы сделать маленькими, то их число > > > будет > > > большим и, как следствие, вырастет объем потребляемых одним запросом > > > ресурсов, > > > включая число открытых дескрипторов. Но вы бы увидели соответствующие > > > ошибки в > > > логах. > > > > > > On Tue, Feb 14, 2017 at 02:52:48PM +, Anton Kiryushkin wrote: > > > > А есть какие-то ограничения на размер слайса? Стоит ли считать, что > 200кб > > > > слишком мало? Файлы в среднем по 5-7мб. > > > > вт, 14 февр. 2017 г. в 17:29, Roman Arutyunyan <a...@nginx.com>: > > > > > > > > > Для начала надо понять, что было запрошено и что реально пришло. > > > > > Тот диапазон, который указан в тексте ошибки - это то, что пришло. > > > > > Учитывая ваш размер слайса и, возможно, глядя в логи, выясните, что > > > именно > > > > > запрашивалось. Надо будет понять, почему одно не совпадает с > другим. > > > > > > > > > > On Tue, Feb 14, 2017 at 05:10:31PM +0300, Anton Kiryushkin wrote: > > > > > > Здравствуйте, Роман. > > > > > > > > > > > > А как это можно дебажить? Что тут можно сделать? На бэкенда в > целом > > > > > просто > > > > > > nginx, который выдает файлы с диска. То есть нет каких-то > уникальных > > > > > вещей. > > > > > > > > > > > > 14 февраля 2017 г., 16:09 пользователь Roman Arutyunyan < > > > a...@nginx.com> > > > > > > написал: > > > > > > > > > > > > > Добрый день Антон, > > > > > > > > > > > > > > On Tue, Feb 14, 2017 at 03:57:19PM +0300, Anton Kiryushkin > wrote: > > > > > > > > Здравствуйте. > > > > > > > > > > > > > > > > Пытаемся использовать указанный в теме модуль и довольно > часто в > > > логе > > > > > > > видно > > > > > > > > ошибки вида: > > > > > > > > > > > > > > > > unexpected range in slice response: 1622016-1630208 while > reading > > > > > > > response > > > > > > > > header from upstream > > > > > > > > > > > > > > > > Не подскажете как точно поймать причину? Это какой-то > странный > > > запрос > > > > > > > > прилетает, или что-то не получается у бэкенда сообразить с > > > > > заголовками? > > > > > > > > > > > > > > Это означает, что с бекенда по какой-то причине пришел не тот > > > range, > > > > > > > который > > > > > > > был запрошен. > > > > > > > > > > > > > > -- > > > > > > > Roman Arutyunyan > > > > > > > ___ > > > > > > > nginx-ru mailing list > > > > > > > nginx-ru@nginx.org > > > > > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Best regards, > > > > > > Anton Kiryushkin > > > > > > > > > > >
Re: nginx slice module
Позвольте еще задать вопрос. Насколько корректно nginx в случае работы с slice-модулем будет обрабатывать запрос с заголовком: Range: bytes=3744- Замечено интересное свойство. Первый такой запрос не отрабатывает. А второй уже может. Схема работы простая nginx + slice -> nginx + mp4 на дисках. 14 февраля 2017 г., 17:59 пользователь Roman Arutyunyan <a...@nginx.com> написал: > Прямых огранчений нет. Но если слайсы сделать маленькими, то их число > будет > большим и, как следствие, вырастет объем потребляемых одним запросом > ресурсов, > включая число открытых дескрипторов. Но вы бы увидели соответствующие > ошибки в > логах. > > On Tue, Feb 14, 2017 at 02:52:48PM +, Anton Kiryushkin wrote: > > А есть какие-то ограничения на размер слайса? Стоит ли считать, что 200кб > > слишком мало? Файлы в среднем по 5-7мб. > > вт, 14 февр. 2017 г. в 17:29, Roman Arutyunyan <a...@nginx.com>: > > > > > Для начала надо понять, что было запрошено и что реально пришло. > > > Тот диапазон, который указан в тексте ошибки - это то, что пришло. > > > Учитывая ваш размер слайса и, возможно, глядя в логи, выясните, что > именно > > > запрашивалось. Надо будет понять, почему одно не совпадает с другим. > > > > > > On Tue, Feb 14, 2017 at 05:10:31PM +0300, Anton Kiryushkin wrote: > > > > Здравствуйте, Роман. > > > > > > > > А как это можно дебажить? Что тут можно сделать? На бэкенда в целом > > > просто > > > > nginx, который выдает файлы с диска. То есть нет каких-то уникальных > > > вещей. > > > > > > > > 14 февраля 2017 г., 16:09 пользователь Roman Arutyunyan < > a...@nginx.com> > > > > написал: > > > > > > > > > Добрый день Антон, > > > > > > > > > > On Tue, Feb 14, 2017 at 03:57:19PM +0300, Anton Kiryushkin wrote: > > > > > > Здравствуйте. > > > > > > > > > > > > Пытаемся использовать указанный в теме модуль и довольно часто в > логе > > > > > видно > > > > > > ошибки вида: > > > > > > > > > > > > unexpected range in slice response: 1622016-1630208 while reading > > > > > response > > > > > > header from upstream > > > > > > > > > > > > Не подскажете как точно поймать причину? Это какой-то странный > запрос > > > > > > прилетает, или что-то не получается у бэкенда сообразить с > > > заголовками? > > > > > > > > > > Это означает, что с бекенда по какой-то причине пришел не тот > range, > > > > > который > > > > > был запрошен. > > > > > > > > > > -- > > > > > Roman Arutyunyan > > > > > ___ > > > > > nginx-ru mailing list > > > > > nginx-ru@nginx.org > > > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > > > > > > > > > > > > -- > > > > Best regards, > > > > Anton Kiryushkin > > > > > > > ___ > > > > nginx-ru mailing list > > > > nginx-ru@nginx.org > > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > -- > > > Roman Arutyunyan > > > ___ > > > 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 > > > -- > Roman Arutyunyan > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx slice module
А есть какие-то ограничения на размер слайса? Стоит ли считать, что 200кб слишком мало? Файлы в среднем по 5-7мб. вт, 14 февр. 2017 г. в 17:29, Roman Arutyunyan <a...@nginx.com>: > Для начала надо понять, что было запрошено и что реально пришло. > Тот диапазон, который указан в тексте ошибки - это то, что пришло. > Учитывая ваш размер слайса и, возможно, глядя в логи, выясните, что именно > запрашивалось. Надо будет понять, почему одно не совпадает с другим. > > On Tue, Feb 14, 2017 at 05:10:31PM +0300, Anton Kiryushkin wrote: > > Здравствуйте, Роман. > > > > А как это можно дебажить? Что тут можно сделать? На бэкенда в целом > просто > > nginx, который выдает файлы с диска. То есть нет каких-то уникальных > вещей. > > > > 14 февраля 2017 г., 16:09 пользователь Roman Arutyunyan <a...@nginx.com> > > написал: > > > > > Добрый день Антон, > > > > > > On Tue, Feb 14, 2017 at 03:57:19PM +0300, Anton Kiryushkin wrote: > > > > Здравствуйте. > > > > > > > > Пытаемся использовать указанный в теме модуль и довольно часто в логе > > > видно > > > > ошибки вида: > > > > > > > > unexpected range in slice response: 1622016-1630208 while reading > > > response > > > > header from upstream > > > > > > > > Не подскажете как точно поймать причину? Это какой-то странный запрос > > > > прилетает, или что-то не получается у бэкенда сообразить с > заголовками? > > > > > > Это означает, что с бекенда по какой-то причине пришел не тот range, > > > который > > > был запрошен. > > > > > > -- > > > Roman Arutyunyan > > > ___ > > > nginx-ru mailing list > > > nginx-ru@nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > > -- > > Best regards, > > Anton Kiryushkin > > > ___ > > nginx-ru mailing list > > nginx-ru@nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > -- > Roman Arutyunyan > ___ > 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 slice module
Здравствуйте, Роман. А как это можно дебажить? Что тут можно сделать? На бэкенда в целом просто nginx, который выдает файлы с диска. То есть нет каких-то уникальных вещей. 14 февраля 2017 г., 16:09 пользователь Roman Arutyunyan <a...@nginx.com> написал: > Добрый день Антон, > > On Tue, Feb 14, 2017 at 03:57:19PM +0300, Anton Kiryushkin wrote: > > Здравствуйте. > > > > Пытаемся использовать указанный в теме модуль и довольно часто в логе > видно > > ошибки вида: > > > > unexpected range in slice response: 1622016-1630208 while reading > response > > header from upstream > > > > Не подскажете как точно поймать причину? Это какой-то странный запрос > > прилетает, или что-то не получается у бэкенда сообразить с заголовками? > > Это означает, что с бекенда по какой-то причине пришел не тот range, > который > был запрошен. > > -- > Roman Arutyunyan > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
nginx slice module
Здравствуйте. Пытаемся использовать указанный в теме модуль и довольно часто в логе видно ошибки вида: unexpected range in slice response: 1622016-1630208 while reading response header from upstream Не подскажете как точно поймать причину? Это какой-то странный запрос прилетает, или что-то не получается у бэкенда сообразить с заголовками? -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: ignore long locked inactive cache entry
Нет, не падают. По крайней мере о падении должно сообщаться в лог. Сообщений не было. Не было и ООМ-killer. Да, если стрельнуть в воркера сигналом, то файлы отпускаются и удаляются cache-manager. Но вместе с этим воркером мы теряем и запросы, которые этот воркер обрабатывал, а это уже обидно. 16 января 2017 г., 19:53 пользователь liveder <nginx-fo...@forum.nginx.org> написал: > Есть предположение, что у вас падают воркеры. А кеш менеджер думает, что > файл еще занят им. > Плюс, мы не можем зарепродюсить данную проблему на el7. Хотя на el6 без > проблем - достаточно лишь kill -9 воркера > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,271068,272018#msg-272018 > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: ignore long locked inactive cache entry
А как узнать, что ответ от бэкенда медленный? По моим наблюдениям, объект в кэше мог пролежать несколько дней. При этом сам бэкенд могли перезагрузить по несколько раз за это время. Объект как был в кэше и был занят nginx, так и продолжал это делать. На мой взгляд это как раз баг, который был исправлен, а не какое-то странное поведение какого-то бэкенда, на которое с определенной версии nginx перестал обращать внимание. 2017-01-16 17:46 GMT+03:00 liveder <nginx-fo...@forum.nginx.org>: > Спасибо! Попробуем! > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,271068,272013#msg-272013 > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: ignore long locked inactive cache entry
Максим, я вас расстрою. В моем случае речь не может идти о websocket, так как их нет как технологии в проекте. Я не могу дать абсолютно все подробности. Но смысл кэширования в том, чтобы сохранять ответы, которые генерируются бэкендом. Исключительно http/1.0. Даже не 1.1. пн, 16 янв. 2017 г. в 16:16, Maxim Dounin <mdou...@mdounin.ru>: > Hello! > > On Mon, Jan 16, 2017 at 11:07:38AM +, Anton Kiryushkin wrote: > > > Спасает обновление минимум до 1.11.6. Жаль, что разработчики это никак не > > комментировали. > > Если спасает - значит проблема была в том, что вы со включённым > кешированием пытались проксировать WebSocket'ы. Смысла в этом нет - > кешировать WebSocket'ы невозможно. Но соответствующий элемент > кеша оказывался заблокирован на всё время WebSocket-соединения, > что могло приводить к алертам в логах, а также блокировать очистку > кеша по max_size. > > Workaround - не включать кеширование там, где включено > проксирование WebSocket'ов. Ну или периодически закрывать > WebSocket-соединения. > > -- > Maxim Dounin > http://nginx.org/ > ___ > 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: ignore long locked inactive cache entry
Спасает обновление минимум до 1.11.6. Жаль, что разработчики это никак не комментировали. пт, 13 янв. 2017 г. в 13:38, liveder: > Добрый день, Антон > > Решили ли вы в итоге проблему? Если да, то как? > > Спасибо > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,271068,271981#msg-271981 > > ___ > 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: ignore long locked inactive cache entry
Проверил, файл и правда занят процессом nginx. Встает вопрос, а что с этим делать тогда? Файл никто не запрашивает, его пытаются удалить, а его видели сам же nginx и удерживает. Файл не удаляется и в итоге раздел забивается в ноль. Можно ли придумать опцию о принудительном удалении элемента кэша, если у него он должен вытесниться, но почему-то его держит сам nginx? Ведь по сути, если этот элемент кому-то понадобится и он станет снова популярным, то он снова будет записан в место для кэширования и нет смысла его удерживать и блокировать удаление. Может ли тут играть злую шутку http2? А keepalive ? 20 ноября 2016 г., 19:09 пользователь Anton Kiryushkin <sw...@fotofor.biz> написал: > Здраствуйте. > > Имеем nginx 1.11.1 с конфигом для кэширования: > > proxy_cache_path /path/to/cache/folder levels=1:2 keys_zone=two:128m > max_size=120g inactive=120m loader_sleep=5ms; > proxy_temp_path /path/to/temp/folder 1 2; > proxy_ignore_headers Expires Cache-Control; > proxy_cache_min_uses 2; > proxy_cache_valid 200 302 7d; > proxy_cache_key $uri; > proxy_force_ranges on; > > > Примерно через 4 часа после перезапуска в логе начинают появляться > сообщения типа: > > ignore long locked inactive cache entry e4717ba34b1d9f128e974fb692755202, > count:1 > > После чего свободного места в разделе не остается совсем. Если > перезапустить процесс, то nginx успешно удалит все лишнее и свободное место > появится снова. > > Не подскажете, что с этим можно сделать? > > Каких-то дополнительных модулей для кэширования нет. > > -- > Best regards, > Anton Kiryushkin > > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
ignore long locked inactive cache entry
Здраствуйте. Имеем nginx 1.11.1 с конфигом для кэширования: proxy_cache_path /path/to/cache/folder levels=1:2 keys_zone=two:128m max_size=120g inactive=120m loader_sleep=5ms; proxy_temp_path /path/to/temp/folder 1 2; proxy_ignore_headers Expires Cache-Control; proxy_cache_min_uses 2; proxy_cache_valid 200 302 7d; proxy_cache_key $uri; proxy_force_ranges on; Примерно через 4 часа после перезапуска в логе начинают появляться сообщения типа: ignore long locked inactive cache entry e4717ba34b1d9f128e974fb692755202, count:1 После чего свободного места в разделе не остается совсем. Если перезапустить процесс, то nginx успешно удалит все лишнее и свободное место появится снова. Не подскажете, что с этим можно сделать? Каких-то дополнительных модулей для кэширования нет. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: SIGSEGV
Да, в segmentation fault. 17 ноября 2016 г., 15:36 пользователь Boris Epstein <borepst...@gmail.com> написал: > Это занятно. А не в дебаггере, напрямую, он тоже падает? > > 2016-11-17 7:24 GMT-05:00 Anton Kiryushkin <sw...@fotofor.biz>: > >> Простите, забыл уточнить, что версия 1.11.1, а версия ядра linux 4.8.0-1. >> >> 2016-11-17 15:23 GMT+03:00 Anton Kiryushkin <sw...@fotofor.biz>: >> >>> Здравствуйте. >>> >>> Не подскажете, почему может вот так падать nginx: >>> >>> # gdb nginx >>> >>> Starting program: /usr/sbin/nginx -t >>> >>> >>> Program received signal SIGSEGV, Segmentation fault. >>> >>> 0xff60 in ?? () >>> >>> (gdb) bt >>> >>> #0 0xff60 in ?? () >>> >>> #1 0x00709e5d in gettimeofday () >>> >>> #2 0x0040e315 in ngx_time_update () at src/core/ngx_times.c:91 >>> >>> #3 0x0040e7ba in ngx_time_init () at src/core/ngx_times.c:73 >>> >>> #4 0x004016e3 in main (argc=2, argv=0x7fffec78) at >>> src/core/nginx.c:216 >>> >>> -- >>> Best regards, >>> Anton Kiryushkin >>> >>> >> >> >> -- >> Best regards, >> Anton Kiryushkin >> >> >> ___ >> 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 > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: SIGSEGV
Простите, забыл уточнить, что версия 1.11.1, а версия ядра linux 4.8.0-1. 2016-11-17 15:23 GMT+03:00 Anton Kiryushkin <sw...@fotofor.biz>: > Здравствуйте. > > Не подскажете, почему может вот так падать nginx: > > # gdb nginx > > Starting program: /usr/sbin/nginx -t > > > Program received signal SIGSEGV, Segmentation fault. > > 0xff60 in ?? () > > (gdb) bt > > #0 0xff60 in ?? () > > #1 0x00709e5d in gettimeofday () > > #2 0x0040e315 in ngx_time_update () at src/core/ngx_times.c:91 > > #3 0x0040e7ba in ngx_time_init () at src/core/ngx_times.c:73 > > #4 0x004016e3 in main (argc=2, argv=0x7fffec78) at > src/core/nginx.c:216 > > -- > Best regards, > Anton Kiryushkin > > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
SIGSEGV
Здравствуйте. Не подскажете, почему может вот так падать nginx: # gdb nginx Starting program: /usr/sbin/nginx -t Program received signal SIGSEGV, Segmentation fault. 0xff60 in ?? () (gdb) bt #0 0xff60 in ?? () #1 0x00709e5d in gettimeofday () #2 0x0040e315 in ngx_time_update () at src/core/ngx_times.c:91 #3 0x0040e7ba in ngx_time_init () at src/core/ngx_times.c:73 #4 0x004016e3 in main (argc=2, argv=0x7fffec78) at src/core/nginx.c:216 -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
proxy_cache & cache-control
Здравствуйте. У меня два вопроса к собравшимся. 1. Чем обсуловлено условие, по которому add_headers и expires нельзя добавить для кода ответа 502. Его можно кэшировать, но нельзя пытаться управлять этим кэшированием. Например, с помощью expires. 2. Собственно сам этот expires и cache-control, похоже, не сильно-то жалуются самим nginx. Решил проверить, что будет, если разрешить добавлять заголовки для 502-го кода и с помощью именованного локейшена их туда добавил. Nginx, который стоит выше уровнем отлично это дело прокэшировал и получились вот такие чудесные заголовки: HTTP/1.1 502 Bad Gateway Server: nginx Date: Tue, 18 Oct 2016 23:45:07 GMT Content-Type: text/html Content-Length: 169 Connection: close Expires: Tue, 18 Oct 2016 23:46:07 GMT Cache-Control: max-age=120,public,must-revalidate В конфиге написано, что 502-й код можно кэшировать только на минуту. На деле выходит, что даже в 23:46:07 элемент все еще находится в кэше. Ждем еще минуту и чудо все равно не случается. Nginx игнорирует этот элемент кэша. Почему/зачем совершенно не понятно. Может кто-то тут сможет дать совет, как лучше поступить? -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.9.12 & bytes module
Я так и сделал. Модуль есть. Ср, 23 марта 2016 г. в 10:54, Maxim Konovalov <ma...@nginx.com>: > On 3/23/16 2:23 AM, Anton Kiryushkin wrote: > > Кажется, я сделал как всегда, add-module. А как я мог собрать его > > динамически и почему другие модули у меня собрались как надо? > > > Начните с nginx -V. > > > 23 марта 2016 г., 1:42 пользователь Alex Domoradov > > <alex@gmail.com <mailto:alex@gmail.com>> написал: > > > > Вы его случайно не динамически собрали? Я про модуль > > > > 2016-03-23 0:37 GMT+02:00 Anton Kiryushkin <sw...@fotofor.biz > > <mailto:sw...@fotofor.biz>>: > > > > Добрый вечер. > > > > Попробовал переехать на одном из серверов на 1.9.12 и не > > получилось по весьма неожиданной причине. Дело в том, что > > там используется ngx_http_bytes_filter_module от Максима > > Дунина (кажется). Который вдруг стал себя не узнавать: > > > > nginx: [emerg] unknown directive "bytes" > > > > > > Хотя в конфиге как и прежде указано просто: > > > > bytes on; > > > > > > Не подскажете, что с этим можно сделать? Nginx, конечно же, > > собран с этим модулем. > > > > > > -- > > Best regards, > > Anton Kiryushkin > > > > > > ___ > > nginx-ru mailing list > > nginx-ru@nginx.org <mailto:nginx-ru@nginx.org> > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > ___ > > nginx-ru mailing list > > nginx-ru@nginx.org <mailto:nginx-ru@nginx.org> > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > > -- > > Best regards, > > Anton Kiryushkin > > > > > > > > ___ > > nginx-ru mailing list > > nginx-ru@nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Maxim Konovalov > > ___ > 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
nginx-1.9.12 & bytes module
Добрый вечер. Попробовал переехать на одном из серверов на 1.9.12 и не получилось по весьма неожиданной причине. Дело в том, что там используется ngx_http_bytes_filter_module от Максима Дунина (кажется). Который вдруг стал себя не узнавать: nginx: [emerg] unknown directive "bytes" Хотя в конфиге как и прежде указано просто: bytes on; Не подскажете, что с этим можно сделать? Nginx, конечно же, собран с этим модулем. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.9.11
А можно чуть подробнее про динамические модули? На основе чего их можно делать? 9 февраля 2016 г., 17:29 пользователь Maxim Dounin <mdou...@mdounin.ru> написал: > Изменения в nginx 1.9.11 > 09.02.2016 > > *) Добавление: теперь resolver поддерживает TCP. > > *) Добавление: динамические модули. > > *) Исправление: при использовании HTTP/2 переменная $request_length не >учитывала размер заголовков запроса. > > *) Исправление: в модуле ngx_http_v2_module. > > > -- > Maxim Dounin > http://nginx.org/ > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
proxy_cache_key
Здравствуйте. Я тут столкнулся с тем, что в кэше у меня оказываются ключи для http_ver 1.0 и для http_ver 1/1. Можно ли их каким-то образом сделать одинаковыми? Или это как с Vary недавним? -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: 105: No buffer space available
Да, я так и сделал. Но кроме советов достаточно далекой давности и в основном относящиеся к OpenVZ не нашел. Может быть у вас есть иные ключевые слова для поиска? 8 сентября 2015 г., 15:28 пользователь Daniel Podolsky <onoko...@gmail.com> написал: > > Не подскажете, в какую сторону копать? > я бы поискал в гугле > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: 105: No buffer space available
Здравствуйте. Повторяю, nginx живет вне виртуального окружения. У сервера есть много сети (10 Гбит) и много памяти (256Гб). Вот кусок конфига, который отвечает за хост, который пишет в лог о недостаточности буферов: proxy_redirectoff; proxy_buffering on; proxy_buffer_size 8k; proxy_buffers 65536 8k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; Сама буферизация необходима, так как пользователь открывает длительное подключение с бэкендом. Ядро Linux, 3.2.68. Пробовал, так же, крутить net.core.somaxconn, но безрезультатно. 8 сентября 2015 г., 15:31 пользователь Ivan Palanevich <loverj...@gmail.com> написал: > Вероятно вам стоит описать немного более подробно вашу проблему. > что за виртуализация, части конфигов с описанием ваших буферов, ось, ядро > и тд. > > Ivan Palanevich > loverj...@gmail.com > > > > On Sep 8, 2015, at 15:29, Anton Kiryushkin <sw...@fotofor.biz> wrote: > > Да, я так и сделал. Но кроме советов достаточно далекой давности и в > основном относящиеся к OpenVZ не нашел. > > Может быть у вас есть иные ключевые слова для поиска? > > 8 сентября 2015 г., 15:28 пользователь Daniel Podolsky <onoko...@gmail.com > > написал: > >> > Не подскажете, в какую сторону копать? >> я бы поискал в гугле >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > -- > Best regards, > Anton Kiryushkin > > ___ > 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 > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
105: No buffer space available
Здравствуйте. Не подскажете, в какую сторону копать? Не виртуалка и действительно много подключений. Но памяти в системе еще вагон. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Re: nginx и потребление памяти
Максим, позвольте к вам еще раз обратиться. Есть ли какая-то формула для подсчета буферов, исходя из примерного размера backend-upstream и числа запросов к серверу/величины трафика. К сожалению, пока так и не удалось найти баланс. И да, я имею ввиду proxy_byffers и proxy_buffer_size. 18 августа 2015 г., 17:18 пользователь Maxim Dounin mdou...@mdounin.ru написал: Hello! On Tue, Aug 18, 2015 at 06:22:01PM +0500, Amanda Sproule wrote: в обоих случаях nginx оказывался собран с ModSecurity. так и есть началь замечать отжирания 1GB в режиме досек-прокси. то тут можно только процитировать старый анекдот: Не делайте так. удалите его из порта во freebsd тогда, пока модсековцы не решат проблемы. Пересоберите порт без соответствующей опции - и будет вам счастье. Там этих опций - чуть больше, чем дофига, и часть из них - сильно экспериментальная (да и в целом качество 3rd party модулей обычно оставляет желать, use with care). Просто не стоит бездумно отмечать всё чтобы было. Ну и да, порт мейнтейнит Сергей Осокин, ему и следует писать, если вы считаете, что в порте что-то не так. Но в данном случае я не вижу повода, чтобы беспокоить уважаемого человека. -- Maxim Dounin http://nginx.org/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx и потребление памяти
Верно ли я понимаю, что память воркерами все равно постепенно должна потребляться. И в моих силах только не дать этой памяти расти чрезмерно быстро? Или же я чего-то не понимаю? 13 августа 2015 г., 14:30 пользователь Maxim Dounin mdou...@mdounin.ru написал: Hello! On Thu, Aug 13, 2015 at 01:48:02AM +0300, Anton Kiryushkin wrote: Да, не совсем мой случай. Я начал смотреть, чем же молодой процесс отличается от того, который съел 10Гб оперативки. Например, вот старый: /proc/21263/fd# ls -al | wc -l 78305 А вот молодой, который на момент подсчета съел около 3Гб: /proc/12578/fd# ls -al | wc -l 16902 [...] Не очень понятно, куда тут можно копать. Для начала - копать в nginx -V и внимательное изучение всех сторонних модулей. Впрочем, если количество открытых файловых дескрипторов соответствует реальному количеству соединений, то проблема может быть банально в слишком больших буферах в конфиге. -- Maxim Dounin http://nginx.org/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx и потребление памяти
Да, не совсем мой случай. Я начал смотреть, чем же молодой процесс отличается от того, который съел 10Гб оперативки. Например, вот старый: /proc/21263/fd# ls -al | wc -l 78305 А вот молодой, который на момент подсчета съел около 3Гб: /proc/12578/fd# ls -al | wc -l 16902 А сам процесс сообщает о себе следующее: VmPeak: 11057228 kB VmSize: 11057228 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 10856376 kB VmRSS: 10856376 kB VmData: 9972480 kB VmStk: 1408 kB VmExe: 4008 kB VmLib: 1864 kB VmPTE: 21520 kB VmSwap: 0 kB Threads: 1 Не очень понятно, куда тут можно копать. 12 августа 2015 г., 22:39 пользователь Maxim Dounin mdou...@mdounin.ru написал: Hello! On Wed, Aug 12, 2015 at 09:45:10PM +0300, Anton Kiryushkin wrote: Здравствуйте. Недавно заметили, что nginx в режиме проксирования (то есть у него на сервере нет файлов, которые он бы мог отдать сам с диска, например) постоянно потребляет память Можете рассказать, на что именно он в этом случае может ее потреблять? По оценкам, примерно, это гигабайт 50 в час. Сам nginx собран с дополнительными модулями. Но выключить их даже на какое-то время не представляется возможным. За последние несколько месяцев я видел 2 жалобы про потребление памяти, в обоих случаях nginx оказывался собран с ModSecurity. Если это аналогичный случай, то тут можно только процитировать старый анекдот: Не делайте так. -- Maxim Dounin http://nginx.org/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
nginx и потребление памяти
Здравствуйте. Недавно заметили, что nginx в режиме проксирования (то есть у него на сервере нет файлов, которые он бы мог отдать сам с диска, например) постоянно потребляет память Можете рассказать, на что именно он в этом случае может ее потреблять? По оценкам, примерно, это гигабайт 50 в час. Сам nginx собран с дополнительными модулями. Но выключить их даже на какое-то время не представляется возможным. На сервере же переодически происходит OOM-killer и таким образом память высвобождается до следующего заполнения. На сам сервер сейчас идет совсем не большая нагрузка, порядка 2Гбит. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
nginx и сжатие
Всем привет. Может ли кто-то подсказать, можно ли, в том числе и по протоколу, научить nginx принимать сжатый запрос. Ну и разжимать его на лету перед проксированием в бэкенд. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: падает nginx mp4 стриминг модуль
Здравствуйте. Подскажите, пожалуйста, как правильно дебажить падение стримминга mp4. Выдает mp4 atom too large:1961198299. Пробовал дергать mp4_buffer_size и mp4_max_buffer_size. Не помогло. Пробовал выключать open_file_cache. Сейчас включен aio. Пробовал выключить. Файловая система xfs. По отладочному логу как-то сходу не понял, на что стоит обратить внимание. 17 ноября 2014 г., 14:19 пользователь Андрей Василишин a.vasilis...@kpi.ua написал: 17.11.2014 13:00, kosmozoo пишет: Верно, в этом случае про tmpfs. Но насколько помню проблема возникала и при стриминге с диска. Возможно у вас есть идеи как решить для tmpfs ? Создать отдельный локейшн для тмпфс и отключить там директио ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Оптимизация nginx для отдачи видеофайлов
Если у вас сеть 1Гбит, то все, что можете, это увеличить число подключений на воркер. Остальные вещи вас не спасут. 2015-03-19 16:31 GMT+03:00 LIVE32 nginx-fo...@nginx.us: Здравствуйте, Как можно оптимизировать nginx для отдачи видеофайлов Характеристика сервера: Озу: 12 гб, Процессор: Intel(R) Xeon(R) CPU L5410 @ 2.33GHz, 8 cores, система: Ubuntu Linux 14.10 utopic 64bit вот внутри nginx.conf user nginx; worker_processes 8; #error_log /var/log/nginx/error.log crit #pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] $request ' '$status $body_bytes_sent $http_referer ' '$http_user_agent $http_x_forwarded_for'; access_log off; sendfileon; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,257431,257431#msg-257431 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Логика обработки опций в location
Здравствуйте. Есть следующая структура server { location = /a.php { try_files @allow @allow; } location = /b.php try_files @allow @allow; } location @allow { some_checks; proxy_pass https://127.0.0.1:8080; } И вроде бы работает. Но я хочу сделать фильтр для доступа к a.php и к b.php. И делать это в рамках a.php и b.php. Для этого я делаю две map, примерно следующего содержания: map $remote_addr_a $loc_a { default 0; 1.1.1.1 1; } map $remote_addr_b $loc_b { default 0; 2.2.2.2 1; } map $remote_addr $all { default 0; 3.3.3.3 1; } Что я тут хочу. Чтобы адрес 1.1.1.1 имел доступ только k a.php, 2.2.2.2 к b.php. А по переменной $all куда угодно. Дальше я добавляю в location a следующие вещи: location a { set $remote_addr_a $remote_addr; set $grant 0; if ($loc_a) { set $grant 1; } if ($all) { set $grant 1; } if ($grant = 0) { error_page 404 = @deny; } try_files @allow @allow; } Тут происходит следующее. Переменные у меня заполняются предсказуемо. Но только в том случае, если до try_files встречается один if. Если два, то возвращается 404 и a.php ищется на диске, то есть не происходит перенаправления в @allow. То есть, вот так оно работает: location a { set $remote_addr_a $remote_addr; if ($loc_a = 0) { error_page 404 = @deny; } try_files @allow @allow; } Собственно, хочется понять, почему так происходит и как сделать то, что мне хочется. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Логика обработки опций в location
Да, собственно, когда-то так и было. Много разных location с отдельными правами доступа. Но при этом, хочется вынести то, что повторяется в какую-то отдельную часть, чтобы уменьшить размер конфигурационного файла и улучшить его читаемость. 18 марта 2015 г., 18:44 пользователь Gena Makhomed g...@csdoc.com написал: On 18.03.2015 17:27, Anton Kiryushkin wrote: try_files @allow @allow; Только последний параметр может указывать на именованный location. Что я тут хочу. Чтобы адрес 1.1.1.1 имел доступ только k a.php, 2.2.2.2 к b.php. А по переменной $all куда угодно. location /a.php { allow 1.1.1.1; allow 3.3.3.3; deny all; } location /b.php { allow 2.2.2.2; allow 3.3.3.3; deny all; } Тут происходит следующее. Переменные у меня заполняются предсказуемо. Но только в том случае, если до try_files встречается один if. Если два, то возвращается 404 и a.php ищется на диске, то есть не происходит перенаправления в @allow. 1) http://wiki.nginx.org/IfIsEvil 2) https://events.yandex.ru/lib/talks/2392/ -- Best regards, Gena ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Логика обработки опций в location
Вместе с тем, хочется понимания, почему происходит локальная обработка при наличии больше, чем одного if, а не переход в именованный. 18 марта 2015 г., 19:26 пользователь Gena Makhomed g...@csdoc.com написал: On 18.03.2015 18:19, Anton Kiryushkin wrote: Да, собственно, когда-то так и было. Много разных location с отдельными правами доступа. Но при этом, хочется вынести то, что повторяется в какую-то отдельную часть, чтобы уменьшить размер конфигурационного файла и улучшить его читаемость. Улучшить читаемость можно очень простым способом - сделав/написав свой собственный генератор конфига, где в своем собственном формате в удобной и компактной форме описывается как должен себя вести nginx. -- Best regards, Gena ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
SPDY errors
Здравствуйте. Поймали следующую строчку в логе: inflate() failed: -5 while processing SPDY Это происходит, если сделать гигантскую cookie и спровоцировать внутренний код ошибки 494. Кто-нибудь сталкивался, может быть с такой проблемой? Версия nginx 1.7.4. При этом, в http такого поведения не наблюдается. Собственно, в конфиге я делаю вот так: error_page 494 @fallback400; А дальше обрабатываю именованный location. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: SPDY errors
Спасибо. 14 февраля 2015 г., 22:44 пользователь Валентин Бартенев vb...@nginx.com написал: On Saturday 14 February 2015 20:49:06 Anton Kiryushkin wrote: Здравствуйте. Поймали следующую строчку в логе: inflate() failed: -5 while processing SPDY Это происходит, если сделать гигантскую cookie и спровоцировать внутренний код ошибки 494. Кто-нибудь сталкивался, может быть с такой проблемой? Версия nginx 1.7.4. [..] Это было исправлено 3 месяца назад в 1.7.8: http://hg.nginx.org/nginx/rev/abb466a57a22 Стоит обновить nginx до актуальной версии (1.7.10 на данный момент). -- Валентин Бартенев ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: proxy_pass on https
Да, upstream называется backend, все же. 5 февраля 2015 г., 0:16 пользователь Anton Kiryushkin sw...@fotofor.biz написал: Здравствуйте. Расскажите, пожалуйста, почему в случае, если я делаю proxy_pass на http хост, то keepalive работает. А если на https, то нет. Если что, то настройки location у меня такие: location / { proxy_pass https://backend; proxy_http_version 1.1; proxy_ssl_session_reuse on; proxy_buffering on; proxy_set_header X_FORWARDED_PROTO https; proxy_ssl_verify off; proxy_set_header Connection ; proxy_set_header Host $host; proxy_pass_request_headers on; } upstream mrg { server ip:443; keepalive 600; } -- Best regards, Anton Kiryushkin -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
proxy_pass on https
Здравствуйте. Расскажите, пожалуйста, почему в случае, если я делаю proxy_pass на http хост, то keepalive работает. А если на https, то нет. Если что, то настройки location у меня такие: location / { proxy_pass https://backend; proxy_http_version 1.1; proxy_ssl_session_reuse on; proxy_buffering on; proxy_set_header X_FORWARDED_PROTO https; proxy_ssl_verify off; proxy_set_header Connection ; proxy_set_header Host $host; proxy_pass_request_headers on; } upstream mrg { server ip:443; keepalive 600; } -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Запретить использовать SPDY
Да, прекрасно. Вот только я не могу слушать отдельный сокет. 18 января 2015 г., 15:49 пользователь Vadim A. Misbakh-Soloviov m...@mva.name написал: В письме от Вс, 18 января 2015 14:44:33 пользователь Gena Makhomed написал: spdy в nginx - это параметр сокета, а не виртуального сервера: http://nginx.org/en/docs/http/ngx_http_core_module.html#listen ... и отсюда следует что Вы, Anton Kiryushkin), впринципе, можете иметь spdy выключенным для конкретного server{} и включенным для остальных... Только данный server{} должен слушать отдельный от остальных сокет :) // раз уж начали прямыми подсказками сыпать, то можно и продолжить... :D -- Best regards, mva ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Запретить использовать SPDY
Здравствуйте. Да, все равно так. Я хочу принудительно выключить spdy для конкретного сервера. Так как, по удивительным причинам, не указывание spdy в конфиге не отменяет факта, что chrome берет и поднимает spdy соединение. Ну фантастика. Но по конфигу работать не должно. Но работает. 18 января 2015 г., 8:42 пользователь Vadim A. Misbakh-Soloviov m...@mva.name написал: В письме от Вс, 18 января 2015 08:33:04 пользователь Михаил Монашёв написал: Если я правильно всё пониманию, то spdy надо специально включать в конфиге nginx-а, чтобы по нему начали ходить. Так что его выключение состоит в не включении. Так ведь, на сколько я понял, товарищ хочет чтобы работало для всех server{} кроме одного. И жалуется, что недобавления spdy в listen в этом server{} не достаточно для того, чтобы SPDY в нём не работал. // надеюсь, телепатический шлем отработал без ошибок -- Best regards, mva ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Запретить использовать SPDY
Спасибо за предложение. Проблема не в том, что у меня нет второго адреса. Вопрос мой ведь в другом, можно ли обойтись иными способами? 18 января 2015 г., 19:17 пользователь Oleg Motienko motie...@gmail.com написал: К.О. Докупите второй IP ? 2015-01-18 18:56 GMT+03:00 Anton Kiryushkin sw...@fotofor.biz: У меня есть сервер, у которого один адрес. Nginx случает этот адрес на порту 443. И обрабатывает два адреса, для который используется один сертификат. Как, простите, тут можно использовать разные сокеты? Я чего-то не понимаю может быть? -- Regards, Oleg ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Запретить использовать SPDY
Здравствуйте. Это, конечно, немного странный вопрос, но можно ли принудительно запретить на каком-то домене использовать spdy? То есть, принудительно его выключить? К сожалению, убирание spdy из listen не спасает. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.7.8
Здравствуйте. А можете немного подробнее рассказать о сути изменений в spdy? 2 декабря 2014 г., 16:49 пользователь Maxim Dounin mdou...@mdounin.ru написал: Изменения в nginx 1.7.8 02.12.2014 *) Изменение: теперь строки If-Modified-Since, If-Range и им подобные в заголовке запроса клиента передаются бэкенду при включённом кэшировании, если nginx заранее знает, что не будет кэшировать ответ (например, при использовании proxy_cache_min_uses). *) Изменение: теперь после истечения proxy_cache_lock_timeout nginx отправляет запрос на бэкенд без кэширования; новые директивы proxy_cache_lock_age, fastcgi_cache_lock_age, scgi_cache_lock_age и uwsgi_cache_lock_age позволяют указать, через какое время блокировка будет принудительно снята и будет сделана ещё одна попытка закэшировать ответ. *) Изменение: директива log_format теперь может использоваться только на уровне http. *) Добавление: директивы proxy_ssl_certificate, proxy_ssl_certificate_key, proxy_ssl_password_file, uwsgi_ssl_certificate, uwsgi_ssl_certificate_key и uwsgi_ssl_password_file. Спасибо Piotr Sikora. *) Добавление: теперь с помощью X-Accel-Redirect можно перейти в именованный location. Спасибо Toshikuni Fukaya. *) Добавление: теперь директива tcp_nodelay работает для SPDY-соединений. *) Добавление: новые директивы в скриптах подсветки синтаксиса для vim. Спасибо Peter Wu. *) Исправление: nginx игнорировал значение s-maxage в строке Cache-Control в заголовке ответа бэкенда. Спасибо Piotr Sikora. *) Исправление: в модуле ngx_http_spdy_module. Спасибо Piotr Sikora. *) Исправление: в директиве ssl_password_file при использовании OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j. *) Исправление: при использовании директивы post_action в лог писались сообщения header already sent; ошибка появилась в nginx 1.5.4. *) Исправление: при использовании директивы postpone_output 0 с SSI-подзапросами в лог могли писаться сообщения the http output chain is empty. *) Исправление: в директиве proxy_cache_lock при использовании SSI-подзапросов. Спасибо Yichun Zhang. -- Maxim Dounin http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx-1.7.8
Вероятно, последнее было бы полезно и мне. Вообще, меня интересует, как можно отследить и исправить проблему с ERR_SPDY_PROTOCOL_ERROR. Особенно это заметно, когда аудио с сайта начинает играть по кругу. С ошибкой ERR_CACHE_MISS более-менее понятно. 2 декабря 2014 г., 17:11 пользователь Валентин Бартенев vb...@nginx.com написал: On Tuesday 02 December 2014 17:52:49 Anton Kiryushkin wrote: Здравствуйте. А можете немного подробнее рассказать о сути изменений в spdy? По сути исправлено несколько ошибок. Вообще со SPDY имеет смысл всегда использовать только последнюю mainline версию. Если подробно, то: - Теперь работает устновка TCP_NODELAY на spdy соединении и снятие TCP_CORK/TCP_NOPUSH. Отсутствие этого механизма могло приводить к задержкам в отправке последней части ответа; - Исправлена одна граничная ситуация в обработке запроса, который не поместился в large_client_header_buffers. В этом случае nginx мог выдавать 500-ую ошибку и закрывать spdy соединение, вместо возвращения 400-ой для конкретного стрима; - Ранее nginx выдавал некорректные с точки зрения SPDY/3.1 спецификации фреймы с заголовками ответа, если в ответе было несколько одинаковых заголовков с пустым значением. -- Валентин Бартенев ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Забивается папка проксированных тел
Здравствуйте. Максим, будьте любезны подсказать, как это лучше сделать. Сервер достаточно нагружен, чтобы включать какой-то отладочный лог. 1 декабря 2014 г., 17:49 пользователь Maxim Dounin mdou...@mdounin.ru написал: Hello! On Sun, Nov 30, 2014 at 05:47:39PM +0400, Anton Kiryushkin wrote: Ну не прямо так и называются, но проявляется примерно так: 25583852000 lrwx-- 1 www-data www-data 64 Nov 30 16:46 /proc/11733/fd/597 - /tmp/nginx.client_body_temp/025513\ (deleted) 25583855270 lrwx-- 1 www-data www-data 64 Nov 30 16:46 /proc/11733/fd/924 - /tmp/nginx.client_body_temp/023652\ (deleted) 25583866600 lrwx-- 1 www-data www-data 64 Nov 30 16:46 /proc/11733/fd/2057 - /tmp/nginx.client_body_temp/025516\ (deleted) 25583872670 lrwx-- 1 www-data www-data 64 Nov 30 16:46 /proc/11733/fd/2664 - /tmp/nginx.client_body_temp/020235\ (deleted) Это временные файлы, которые nginx использует для чтения тела запроса, если размер тела превышает client_body_buffer_size. Сами файлы удалены, но nginx ещё держит их открытыми - видимо, соответствующие запросы пока ещё выполняются. Само по себе использование временных файлов является штатным поведением (в логах при этом будет warning про a client request body is buffered to a temporary file). Если есть причины думать, что что-то происходит нештатно - e.g., файлы не закрываются по завершению запроса - имеет смысл начать со сбора информации, демонстрирующей проблему. -- Maxim Dounin http://nginx.org/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Забивается папка проксированных тел
Ну не прямо так и называются, но проявляется примерно так: 25583852000 lrwx-- 1 www-data www-data 64 Nov 30 16:46 /proc/11733/fd/597 - /tmp/nginx.client_body_temp/025513\ (deleted) 25583855270 lrwx-- 1 www-data www-data 64 Nov 30 16:46 /proc/11733/fd/924 - /tmp/nginx.client_body_temp/023652\ (deleted) 25583866600 lrwx-- 1 www-data www-data 64 Nov 30 16:46 /proc/11733/fd/2057 - /tmp/nginx.client_body_temp/025516\ (deleted) 25583872670 lrwx-- 1 www-data www-data 64 Nov 30 16:46 /proc/11733/fd/2664 - /tmp/nginx.client_body_temp/020235\ (deleted) 19 ноября 2014 г., 19:18 пользователь Maxim Dounin mdou...@mdounin.ru написал: Hello! On Wed, Nov 19, 2014 at 02:46:26AM +0400, Anton Kiryushkin wrote: Здравствуйте. В последнее время стали находить много серверов, где довольно много таких вот файлов остается: nginx.client_body_temp/ID (deleted) Что с этим можно сделать? Сейчас 1.6.0, на 1.2.4 таких проблем не замечали. Вот прям так файлы и называются, с (deleted) в конце названия? Если да, то это выглядит как что-то, связанное поведением файловой системы. Вообще nginx временные файлы удаляет сразу после создания (если его не попросили делать по другому с помощью директивы client_body_in_file_only), и соответственно на файловой системе они стандартными средствами не видны, а после закрытия соответствующего файлового дескриптора nginx'ом - с диска исчезают сами. -- Maxim Dounin http://nginx.org/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
server_name regexp
Здравствуйте. Какая-то ерунда наблюдается. Вот есть у меня хост, у которого есть поддомены. И каждый поддомен должен идти на свой бэкенд. Но так же, у этого хоста есть и https. Вопрос первый. Правда ли, что с этом случае нельзя использовать регулярное выражение для описания имени этого хоста? Если так, то нужно использовать regexp имя и *.site.com ? Вопрос второй. Я вот попробовал использовать такую конструкцию для описания этого хоста, как в map, так и в server_name: ~^(?n).+site\.com$ И ни в map, ни в server_name я не получаю значение $n. Я попробовал так: ~^(?n.+site\.com)$ И получил весь $http_host, вместо $n. Что я делаю не так? -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Re[2]: resumable upload
Добрый вечер. А ни у кого случаем нет патча для последних версий nginx? Буду очень благодарен за ссылку. 22 мая 2013 г., 21:51 пользователь vlastv nginx-fo...@nginx.us написал: Михаил Монашёв Wrote: --- Здравствуйте, Dmitry. Сложилась не очень приятная для многих ситуация в связис upload-модулем и его неработоспособностью в свежих версиях nginx. В частности мы используем модуль в продакшене практически с самого появления модуля, и уже более двух лет используем его фичу resumable upload. На наших нагрузках использование модуля более чем оправдано, также как и оправдано использование дозагрузки в связи с большими размерами загружаемых файлов. Я сильно опасаюсь, что когда политика нашей компании вынудит обновиться до свежей версии nginx, у меня не будет никакой замены для upload-модуля (client_body_in_file_only ни разу не полноценная замена). Поэтому, думаю многие были бы рады услышать ответ Nginx Inc. по поводу дальнейшей судьбы этого модуля, и request body-фильтров в частности, т.к. насколько я понимаю именно с их помощью можно будет легально реализовать такой же функционал. Если так сильно нужен модуль, то почему бы не проспонсировать его доработку? У меня была подобная ситуация с самописным модулем и всё прекрасно разрешилось. Цена вопроса? -- С уважением, Михаил mailto:postmas...@softsearch.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,237896,239432#msg-239432 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx и /etc/hosts
Здравствуйте, Игорь. А можно у вас уточнить еще два момента. 1. Зачем nginx вызывает эти функции libc, например, если в нашем случае мы не используем в proxy_pass домены, а только IP. Верно ли предположение, что происходит вызов gethostbyname на IP? 2. Как оптимизировать это место, если файл hosts достаточно большой? 2 октября 2014 г., 10:43 пользователь Igor Sysoev i...@sysoev.ru написал: On 02 Oct 2014, at 04:28, Anton Kiryushkin sw...@fotofor.biz wrote: Мы тут заметили, что при старте nginx, он довольно часто перечитывает /etc/hosts и /etc/resolv.conf. Можно ли как-то узнать зачем. Причем ладно бы один раз, а то ведь раз 5, по ощущениям. Это делает libc при вызове gethostbyname() и getaddrinfo(). -- Igor Sysoev Join us for nginx.conf 2014, October 20-22, San Francisco. Get 25% off with code NGINXUG: http://nginx.com/nginxconf/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx и /etc/hosts
Здравствуйте, Вадим. Это не всегда удобно. Например, если у вас достаточно много хостов и не одна площадка. В этом случае вы предлагаете на каждой площадке сделать много таких dns-серверов? Но в чем выигрыш? Мы делаем запрос по сети и тратим на это условно 500 миллисекунд, или мы имеем hosts в памяти и в худшем случае тратим 200 на чтение этого файла, который и так оказывается в кэше системы. 2 октября 2014 г., 15:22 пользователь Vadim A. Misbakh-Soloviov m...@mva.name написал: В письме от Чт, 2 октября 2014 15:06:20 пользователь Anton Kiryushkin написал: Здравствуйте, Игорь. Прошу прощения, что влезаю, хоть и не Игорь :) А можно у вас уточнить еще два момента. 1. Зачем nginx вызывает эти функции libc, например, если в нашем случае мы не используем в proxy_pass домены, а только IP. Верно ли предположение, что происходит вызов gethostbyname на IP? -//-//-//- 2. Как оптимизировать это место, если файл hosts достаточно большой? А Вы не пробовали, раз уж у вас так разросся файл hosts посмотреть в сторону использования кеширующего dns-сервера? (хоть бы и того же dnsmasq)? -- Best regards, mva ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
nginx и /etc/hosts
Здравствуйте. Мы тут заметили, что при старте nginx, он довольно часто перечитывает /etc/hosts и /etc/resolv.conf. Можно ли как-то узнать зачем. Причем ладно бы один раз, а то ведь раз 5, по ощущениям. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
nginx + cors
Здравствуйте. Подскажите, пожалуйста, имеется мистика. Есть вот такой location: location ~ \.jpg$ { expires 1h; proxy_pass http://host:port; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET, HEAD, OPTIONS; add_header Access-Control-Allow-Origin *; } И все вроде бы хорошо, но если размер файла становится хотя бы 91256 байт, то эти заголовки не отдаются. Звучит как фантастика, но может быть и правда отдача заголовков зависит от того, какой объем проксируется. Версия nginx 1.2.4. -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx + cors
Здравствуйте. Делаю curl -i и проверяю, что отдал сервер. 10 сентября 2014 г., 14:17 пользователь Aleksandr Sytar sytar.a...@gmail.com написал: 10 сентября 2014 г., 12:14 пользователь Anton Kiryushkin sw...@fotofor.biz написал: Здравствуйте. Подскажите, пожалуйста, имеется мистика. Есть вот такой location: location ~ \.jpg$ { expires 1h; proxy_pass http://host:port; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET, HEAD, OPTIONS; add_header Access-Control-Allow-Origin *; } И все вроде бы хорошо, но если размер файла становится хотя бы 91256 байт, то эти заголовки не отдаются. Звучит как фантастика, но может быть и правда отдача заголовков зависит от того, какой объем проксируется. Версия nginx 1.2.4. А как вы проверяете отдачу/не отдачу заголовков? По хорошему нужно как-то так: curl -I http://domain.com/foo.jpg ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Странное поведение при редиректе по параметрам
Понятно. Нужно делать принудительный сброс аргументов. Вышел из положения так: if ($arg_arg ~* noname) { set $args ; rewrite ^ http://domain.com permanent; } 5 февраля 2014 г., 12:36 пользователь Anton Kiryushkin sw...@fotofor.bizнаписал: Всем здравствуйте. Имеет урл: http://domain.com/?arg=noname Делается конфиг: if ($arg_arg ~* noname) { rewrite ^ http://domain.com permanent; } На странице в итоге вижу про циклические редиректы, а в логе уйму обращений на все тот же исходный урл. Но почему, если я делаю редирект на http://domain.com, а не на http://domain.com/ ? Дебаг там к сожалению не включить, но логически это поведение объяснить не получается. -- Best regards, Anton Kiryushkin -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: анализ аргументов в arg*
Может быть попробовать так: if ($args ~* SID=110) { ? 2 февраля 2014 г., 17:13 пользователь denis de...@webmaster.spb.ruнаписал: 01.02.2014 15:58, Igor Sysoev пишет: On Feb 1, 2014, at 2:57 , denis wrote: Потребовалось сделать редирект на базе одного из ряда аргументов, логично было бы так if ($arg_SID=110) { А заработало так if ($args ~ SID=110) { Что с $arg_SID не так? Вариант с if ($arg_SID~110) { также не заработал. И почему с args заработало вообще. вызов типа ?SID=11PID=200 $arg_SID должен работать. но не работало или я что-то не так делал. Версия 1.4.4, не самая новая но и не 0.7 штатный дебиановский. Из оф.репы ngixn. Примеры запуска выше. Ну и почему работало if ($args ~ SID=110), в чем тут суть. Блок был примерно такой location / { if ... { return 301 tralala; break; } основное описание ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: proxy_pass https
Да, это само собой. На 1-м у меня сейчас так: proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 20 января 2014 г., 20:10 пользователь Anton Yuzhaninov cit...@citrin.ruнаписал: On 01/20/14 20:03, Anton Kiryushkin wrote: Первичный вывод сделан на основе прописывания на втором nginx в конфиге хоста опций: set_real_ip_from real_ip_header Еще на 1-м nginx нужно proxy_set_header $remote_addr; ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: FTP Proxy
haproxy ? 14 ноября 2013 г., 15:37 пользователь Илья Шипицин chipits...@gmail.comнаписал: мы используем вот такую штуку http://www.openbsd.org/faq/pf/ru/ftp.html 14 ноября 2013 г., 16:30 пользователь Роман n.g.i.n.x@gmail.com написал: Здравствуйте. Есть куча вируталок во внутренней сети, н с одним нешним ip Можно ли проксировать в них ftp соединения через nginx? Или есть какое то аналогичное решение? ___ 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 -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Можно ли определить делимость числа ?
Ну всякие бывают извращения. Например, бывает несколько апстримов, между которыми нужно распределять запросы, в зависимости от некого числа. 2013/11/2 Dmitry dmitry.goryai...@gmail.com На вскидку, ибо с телефона, http://www.ashep.org/2011/nginx-balansirovka-nagruzki/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: блокировка клиентов по комбинации IP-адреса и user agent
Можете использовать маленький скрипт на lua, в который отправлять IP и user-agent, а в скрипте анализировать, блокировать запрос, или нет. 9 августа 2013 г., 9:01 пользователь Михаил Монашёв postmas...@softsearch.ru написал: Здравствуйте, anon. Какое можете предложить наиболее эффективное решение для блокировки клиентов по паре IP-адрес (в идеале - подсеть) + строка user agent? Для упрощения предположим, что user agent всегда постоянный. Генерить файлик с map{} и инклудить его в основной конфиг. А раз в минуту или при изменении файлика посылать nginx-у сигнал, чтобы он перечитывал свой конфиг -- С уважением, Михаил mailto:postmas...@softsearch.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Хочется сделать так, чтобы сайт не был доступен по его ip
Выкладывайте уже, будем смотреть ) 21 июля 2013 г., 22:55 пользователь dvital1001 nginx-fo...@nginx.usнаписал: я думаю не слишком хорошо ip своего сервера светить в интернете таким образом. :) Я могу выложить конфиг, заменив домены на ip на что-то нейтральное, но с сохранением смысла конфига. Так подойдет? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,241085,241100#msg-241100 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Переопределение заголовка Connection
А не может ли дело быть в отсутствующем заголовке host? 02.07.2013 16:16 пользователь Илья Шипицин chipits...@gmail.com написал: На HTTP/1.1 заголовок Connection необязателен, дефолтным значением считается Keep-Alive. заставлять никого не надо. 2 июля 2013 г., 16:07 пользователь Александр Бабин al...@yandex.ru написал: Привет всем ! Столкнулся с такой проблемой. Есть некий портал, крутится на JBOSS. Используется NGINX в качестве front-end. По документации настроен keep-alive: http{ ... keepalive_timeout 45 45; keepalive_requests 1000; ... } А вот редирект на JBOSS, то есть на back-end: server{ ... location /our-portal/ { proxy_pass http://127.0.0.1:8080; break; error_page 404 = @404; error_page 502 = @502; error_page 504 = @504; } ... } Проанализировал сетевые дампы между клиентом , nginx и jboss, и оказалось, что в случае проксирования клиенту всегда приходит Connection:close . В этом вся и проблема, несмотря на настройки в Nginx, возможно , что-то не так настроено... СтОит отметить, что back-end ВСЕГДА возвращает вообще ответ без заголовка Connection. Причем это не зависит от заголовка запроса. Таким образом, в качестве исходных данных считаем, что back-end НИКОГДА не шлет заголовок Connection. Я попытался в реврайт добавить ручками нужный заголовок через more_set_headers: location /our-portal/ { proxy_pass http://127.0.0.1:8080; more_set_headers 'connection: keep-alive'; break; error_page 404 = @404; error_page 502 = @502; error_page 504 = @504; } но в этом случае в браузер приходит Connection : close, keep-alive, и здесь, согласно документации, должно приходить только одно значение. Так что , как будут вести себя разные типы браузеров - неясно. Как быть в этом случае ? как заставить отдавать Connection: keep-alive ? если это возможно.. Спасибо! ___ 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 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Перезапуск кэш-менеджера
Отвечаю по-порядку. 1. На нашей нагрузке на nginx, процесс может съедать и гигабайт. 2. Соединения происходят очень быстро и в громадном числе, будем исчислять их миллионами в секунду. 3. Сервер конечно же не один. Но каждый из них обрабатывает большое число запросов. И потерять хотя бы один из них на небольшой промежуток времени очень тяжело. 14 марта 2013 г., 10:51 пользователь denis de...@webmaster.spb.ru написал: 14.03.2013 2:05, Anton Kiryushkin пишет: Да, Михаил. У нас именно такая ситуация. Раздаем очень много разного статического контента. И несколько раз приходится думать перед тем, как сказать reload. Собственно поэтому и созникает вопрос, отраженный в топике. Да и в принципе ответ уже получен. Спасибо. А у вас нет системы балансировки нагрузки? И всё раздаётся с 1 машины? В правильной системе ведь отказ 1 ноды не должен создать проблем.. Видимо, вам надо писать свой модуль для управления кэшем или просто под свои задачи допиливать nginx. __**_ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/**mailman/listinfo/nginx-ruhttp://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Перезапуск кэш-менеджера
Вот воркеров как раз и не хочется перезапускать, так как это очень большие накладные затраты по ресурсам. 13 марта 2013 г., 19:24 пользователь Andrey Kopeyko and...@kopeyko.ruнаписал: 13.03.2013 18:53, Maxim Dounin пишет: Hello! On Wed, Mar 13, 2013 at 06:25:15PM +0400, Anton Kiryushkin wrote: Возник вопрос с тем, как перезапустить только процесс кэш-менеджера, не трогая основной процесс и работающих воркеров? Никак. Почему же никак - upgrade на лету даст, насколько я понимаю, желаемый эффект. Правда, ценой перезапуска воркеров без прерывания обслуживания клиентов, переоткрытия логов, и т.д. и т.п. -- Best regards, Andrey Kopeyko and...@kopeyko.ru __**_ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/**mailman/listinfo/nginx-ruhttp://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Перезапуск кэш-менеджера
Просто очень много подключения к ним. Очень много. 13 марта 2013 г., 19:28 пользователь Andrey Kopeyko and...@kopeyko.ruнаписал: 13.03.2013 19:25, Anton Kiryushkin пишет: Вот воркеров как раз и не хочется перезапускать, так как это очень большие накладные затраты по ресурсам. Чем же таким тяжелым ваши воркеры занимаются на старте? 13 марта 2013 г., 19:24 пользователь Andrey Kopeyko and...@kopeyko.ru mailto:and...@kopeyko.ru написал: 13.03.2013 18:53, Maxim Dounin пишет: Hello! On Wed, Mar 13, 2013 at 06:25:15PM +0400, Anton Kiryushkin wrote: Возник вопрос с тем, как перезапустить только процесс кэш-менеджера, не трогая основной процесс и работающих воркеров? Никак. Почему же никак - upgrade на лету даст, насколько я понимаю, желаемый эффект. Правда, ценой перезапуска воркеров без прерывания обслуживания клиентов, переоткрытия логов, и т.д. и т.п. -- Best regards, Andrey Kopeyko and...@kopeyko.ru __**_ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/**mailman/listinfo/nginx-ruhttp://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Перезапуск кэш-менеджера
Нет, reload не путается с restart. К тому же не забывайте, что при reload, создаются две копии рабочих процессов. Это может быть достаточно серьезной нагрузкой на сервер, которую не хочется лишний раз запускать. Перезапуск же кэш-менеджера может быть полезен, например, для изменения параметров кэширования. То есть, изменили параметры кэширования, перезапустили соответствующую службу, или дали команду перечитать конфиг. 13 марта 2013 г., 20:17 пользователь Gena Makhomed g...@csdoc.com написал: On 13.03.2013 16:25, Anton Kiryushkin wrote: Возник вопрос с тем, как перезапустить только процесс кэш-менеджера, не трогая основной процесс и работающих воркеров? зачем его перезапускать, в его работе есть какие-то проблемы? может быть имеет смысл пофиксить проблему из-за чего он падает, тогда и вручную ничего перезапускать не надо будет? -- Best regards, Gena __**_ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/**mailman/listinfo/nginx-ruhttp://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Re[2]: Перезапуск кэш-менеджера
Да, Михаил. У нас именно такая ситуация. Раздаем очень много разного статического контента. И несколько раз приходится думать перед тем, как сказать reload. Собственно поэтому и созникает вопрос, отраженный в топике. Да и в принципе ответ уже получен. Спасибо. 14 марта 2013 г., 1:32 пользователь Михаил Монашёв postmas...@softsearch.ru написал: Здравствуйте, Daniel. К тому же не забывайте, что при reload, создаются две копии рабочих процессов. Это может быть достаточно серьезной нагрузкой на сервер, которую не хочется лишний раз запускать. Нагрузку на сервер создают не рабочие процессы (их же не тысячи, и даже не сотни), а соединения, которых от релоада больше не становится. На самом деле проблема такая есть. При релоаде старые процессы ещё кушают память, и новым может её перестать хватать, если памяти впритык. А несколько реалоадов подряд вообще всю память съедят. Не знаю, какой случай у топикстартера, но видимо сильно экстремальный, раз он релоад боится делать и видимо раздача видео в плееры или почта, раз рестарт не приемлем. -- С уважением, Михаил mailto:postmas...@softsearch.ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: $request uri в lowercase
Можно попробовать использовать mod_lua для этих целей. Скрипт будет в две строчки. 9 марта 2013 г., 18:39 пользователь Namaste nginx-fo...@nginx.us написал: Да нет. На самом деле нормальное написание url'а - одно. Например /Test-page.htm - таким его генерю я и таким его видно в ссылке с других страниц сайта. Просто замечаю, что иногда пытаются скачать /test-page.htm. Вот и подумалось, что если кому-то захочется пошалить, можно пытаться качать страницы с разным написанием урла - страница из кэша браться не будет, будет расти нагрузка на сервер и будет расти размер кэша. Я могу конечно проверять написание урла с написанием соответсвующего поля в базе, но зачем мне лишние запросы к базе? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,237155,237157#msg-237157 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: $request uri в lowercase
Для nginx. Почему, потому что mod_lua асинхронный. 9 марта 2013 г., 23:18 пользователь denis de...@webmaster.spb.ru написал: 09.03.2013 19:57, Anton Kiryushkin пишет: Можно попробовать использовать mod_lua для этих целей. Скрипт будет в две строчки. для апача? и почему не embedded perl? __**_ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/**mailman/listinfo/nginx-ruhttp://mailman.nginx.org/mailman/listinfo/nginx-ru -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru