Re: [Unit] php-модуль, Ubuntu'шные пакеты

2019-06-14 Пенетрантность Валентин Бартенев
On Friday, 14 June 2019 23:40:31 MSK Vadim A. Misbakh-Soloviov wrote:
[..]
> Хотя от понимания почему там работает - я бы не отказался :)
[..]

Там бинарная совместимость зависит в том числе от параметров сборки так,
что ABI между двумя сборками libphp может разъехаться даже при совпадении
версии PHP.  Поэтому модуль должен быть собран именно с той сборкой php,
с которой он используется, иначе могут быть вот такие спецэффекты.

Если ABI разъехался, то упадет оно или не упадет и как будет работать, зависит
также от того, где он разъехался и насколько, какие участки памяти при этом
затронуты и что в них находилось.

--
Валентин Бартенев
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: [Unit] php-модуль, Ubuntu'шные пакеты

2019-06-14 Пенетрантность Vadim A. Misbakh-Soloviov
Взяли из PPA http://ppa.launchpad.net/ondrej/php/ubuntu (как и все в 
интернетах, кому нужны отличные от апстримовых версии).
Ибо программисты пишут под 7.1 и пока не готовы к апгрейду...

К слову, на соседней-то машине, которая тоже bionic, юнит с 7.1 вполне себе 
работает...
Правда, там не lxc-контейнер и ядро поновее...

Да и на соседнем проекте, кстати, используют докерный образ nginx/unit:1.8.0-
php7.0 и доставляют в него в Dockerfile'е php7.2 и всё работает как часы...
Разве что берут они его там с https://packages.sury.org/php/ ибо контейнер 
дебиановый.

В общем, похоже, единственным выходом будет пересобирать юнитомодуль и класть 
нужные модули в свой PPA... :(

Хотя от понимания почему там работает - я бы не отказался :)

Пока склонен считать, что, как и сказал товарищ, ответивший мимо рассылки,

> Причина была в том, что использовались php плагины, собранные другой версией 
php или с другой  конфигурацией сборки php. Вам надо будет попробовать 
отключить плагины, или пересобрать их с текущей версией php.

Но теория тоже довольно притянутая, т.к. сторонних плагинов не используются а 
на текущих двух машинах весрии и состав библиотек идентичны.

Плюс, крошится-то, на этой машине, только когда я через юнит задаю 
контролирующие INI-директивы (а без их переопределения не крошится и 
работает)...







В письме от пятница, 14 июня 2019 г. 15:32:45 MSK пользователь Валентин 
Бартенев написал:
> On Friday, 14 June 2019 14:45:25 MSK Vadim A. Misbakh-Soloviov wrote:
> > Что-то я хоть тресни, но не могу из gdb попасть в процесс php-модуля,
> > чтобы
> > отловить его: либо если я включаю и follow=child и выключаю
> > detach-on-fork, то ухожу не в те форки, что нужно (роутер, контроллер), а
> > знаний как попасть в нужный - не хватает :'(.
> > 
> > 
> > 
> > 
> > Тут, кстати, один участник рассылки в обход неё, напрямую отправил письмо
> > о
> > том, что он сталкивался с таким же когда модуль был собран не под ту
> > версию
> > php.
> > 
> > Технически-то, так оно и есть: debug-модуль php у юнита собран под 7.0, а
> > "продакшн" под 7.2
> > А использую я 7.1...
> 
> [..]
> 
> Так работать конечно не будет.
> У libphp нет совместимости по ABI между 7.x версиями.
> 
> > Но что-то на убунте-то как-то не хочется пересобирать вручную пакет с
> > модулем php на каждом сервере, куда планируется воткнуть Юнит.
> > 
> > Может, тогда имеет смысл вам, как апстриму сделать пакеты
> > "unit-php-{5.6,7-
> > {0,1,2,3}}?
> 
> [..]
> 
> Мы обычно собираем с тем, что есть в дистрибутиве.  Иначе это поддерживать
> невозможно.  Вопрос в том, откуда возникло расхождение в 7.x версиях.
> 
> И откуда вообще взялся php 7.1 в убунтах?
> Я что-то его не вижу в https://packages.ubuntu.com/ - ни в xenial, ни в
> bionic.
> 
> --
> Валентин Бартенев
> ___
> 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

обработка set_real_ip_from для 400-х статусов

2019-06-14 Пенетрантность Илья Шипицин
привет!

стенд:

nginx-1.17.0 из официального репо.
конфиг

user  root;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid/var/run/nginx.pid;

events {
worker_connections  1024;
}


http {
include   /etc/nginx/mime.types;
default_type  application/octet-stream;

log_format  custom  '$remote_addr\t$http_x_real_ip\t$status\t$uri';
set_real_ip_from   127.0.0.1;

access_log  /var/log/nginx/access.log  custom;

server {
listen   80;
server_name  localhost;
location / { return 200; }
}

server {
listen   80;
server_name  _;
location / { return 200; }
}

}


=
делаю два запроса

curl --header "X-Real-IP: 8.9.10.11" - -I  -k http://localhost/test
curl --header "X-Real-IP: 8.9.10.11" - -I  -k http://localhost/%

получаю

# cat /var/log/nginx/access.log
8.9.10.11 8.9.10.11 200 /test
127.0.0.1 - 400


почему магия с форматом лога и хедерами работает на 200-х статусах и не
работает на 400-х ? это такая задумка ? выглядит как баг.

Илья Шипицин
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: [Unit] php-модуль, Ubuntu'шные пакеты

2019-06-14 Пенетрантность Валентин Бартенев
On Friday, 14 June 2019 14:45:25 MSK Vadim A. Misbakh-Soloviov wrote:
> Что-то я хоть тресни, но не могу из gdb попасть в процесс php-модуля, чтобы 
> отловить его: либо если я включаю и follow=child и выключаю detach-on-fork, 
> то 
> ухожу не в те форки, что нужно (роутер, контроллер), а знаний как попасть в 
> нужный - не хватает :'(.
> 
> 
> 
> 
> Тут, кстати, один участник рассылки в обход неё, напрямую отправил письмо о 
> том, что он сталкивался с таким же когда модуль был собран не под ту версию 
> php.
> 
> Технически-то, так оно и есть: debug-модуль php у юнита собран под 7.0, а 
> "продакшн" под 7.2
> А использую я 7.1...
[..]

Так работать конечно не будет.
У libphp нет совместимости по ABI между 7.x версиями.


> 
> Но что-то на убунте-то как-то не хочется пересобирать вручную пакет с модулем 
> php на каждом сервере, куда планируется воткнуть Юнит.
> 
> Может, тогда имеет смысл вам, как апстриму сделать пакеты "unit-php-{5.6,7-
> {0,1,2,3}}?
[..]

Мы обычно собираем с тем, что есть в дистрибутиве.  Иначе это поддерживать
невозможно.  Вопрос в том, откуда возникло расхождение в 7.x версиях.

И откуда вообще взялся php 7.1 в убунтах?
Я что-то его не вижу в https://packages.ubuntu.com/ - ни в xenial, ни в bionic.

--
Валентин Бартенев
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: [Unit] php-модуль, Ubuntu'шные пакеты

2019-06-14 Пенетрантность Vadim A. Misbakh-Soloviov
Что-то я хоть тресни, но не могу из gdb попасть в процесс php-модуля, чтобы 
отловить его: либо если я включаю и follow=child и выключаю detach-on-fork, то 
ухожу не в те форки, что нужно (роутер, контроллер), а знаний как попасть в 
нужный - не хватает :'(.




Тут, кстати, один участник рассылки в обход неё, напрямую отправил письмо о 
том, что он сталкивался с таким же когда модуль был собран не под ту версию 
php.

Технически-то, так оно и есть: debug-модуль php у юнита собран под 7.0, а 
"продакшн" под 7.2
А использую я 7.1...

Но что-то на убунте-то как-то не хочется пересобирать вручную пакет с модулем 
php на каждом сервере, куда планируется воткнуть Юнит.

Может, тогда имеет смысл вам, как апстриму сделать пакеты "unit-php-{5.6,7-
{0,1,2,3}}?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Отдать JSON в зависимости от тела POST'a

2019-06-14 Пенетрантность Михаил Монашёв
Здравствуйте, darksmoke.

> Подскажите, может кто-то знает, есть один урл и он отдает разный JSON в
> зависимости от того какая переменная в него пришла POST'ом.

> Если знаете такое решение покажите пожалуйста. Теоритически скрипт на луа
> может такое. Но я еще не дошел до него, может есть проще варианты?

С помощью map это возможно 
http://nginx.org/ru/docs/http/ngx_http_map_module.html

--
С уважением,
 Михаил  mailto:postmas...@softsearch.ru

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Лимит подключений в Windows 1024 worker connections are not enough

2019-06-14 Пенетрантность Илья Шипицин
"while connecting to upstream" - подскажите, у вас кипэлайв до бекенда
используется ?
какие у вас нагрузки ?

пт, 14 июн. 2019 г. в 12:24, Krelion :

> *309644 maximum number of descriptors supported by select() is 1024 while
> connecting to upstream
>
> Posted at Nginx Forum:
> https://forum.nginx.org/read.php?21,284527,284528#msg-284528
>
> ___
> 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: Лимит подключений в Windows 1024 worker connections are not enough

2019-06-14 Пенетрантность Krelion
*309644 maximum number of descriptors supported by select() is 1024 while
connecting to upstream

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,284527,284528#msg-284528

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Лимит подключений в Windows 1024 worker connections are not enough

2019-06-14 Пенетрантность Krelion
Добрый день!

Nginx 1.15.9 для Windows

конфиг,

worker_processes  1;

events {
worker_connections  8192;
}

в логах:

2019/06/07 14:17:20 [alert] 2424#2720: 1024 worker_connections are not
enough

Как поднять количество соединений больше 1024 в версии под Windows ?
В моем случае невозможно использовать Linux версию по ряду причин.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,284527,284527#msg-284527

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru