The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

21.11.2018 10:52  Выпуск ngx_php 0.0.13, модуля с интерпретатором PHP для nginx

Подготовлен новый выпуск модуля ngx_php с реализацией встраиваемого в nginx интерпретатора языка программирования PHP. Модуль позволяет создавать обработчики запросов на PHP, модифицировать запрос/ответ, фильтровать тело ответа и заголовки, создавать заглушки для блокирования уязвимостей в web-приложениях, организовывать проверку доступа. По сравнению с запуском PHP при помощи fpm модуль ngx_php обеспечивает доступ к внутренним API nginx и демонстрирует существенный прирост производительности (от 2 до 10 раз).


    location = /nginx_request {
            set $a 123;
            content_by_php '
                echo ngx_request::document_uri();
                echo "ngx::query_args()\n";
                var_dump(ngx::query_args()); 
                $a = ngx_var::get("a");
                var_dump($a);
            ';
        }

Дополнительно можно отметить вышедшую на днях статью о применении модуля njs (NGINX JavaScript module) для создания виртуальных патчей для блокирования уязвимостей и проблем в web-приложениях (использование как своеобразного аналога ModSecurity).

  1. Главная ссылка к новости (https://github.com/rryqszq4/ng...)
  2. OpenNews: Релиз njs 0.2.5, интерпретатора JavaScript от NGINX
  3. OpenNews: Выпуск сервера приложений NGINX Unit 1.6
  4. OpenNews: Обновление nginx 1.14.1 и 1.15.6 с устранением трёх уязвимостей
  5. OpenNews: В nginx добавлена поддержка технологии HTTP/2 Server Push
  6. OpenNews: Yandex опубликовал статический анализатор файлов конфигурации nginx
Лицензия: CC-BY
Тип: Программы
Ключевые слова: nginx, php
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (1), 11:05, 21/11/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +11 +/
    Теперь phar-архивы можно загружать и выполнять на удаленных серверах еще быстрее.
     
     
  • 2.3, нах (?), 11:37, 21/11/2018 [^] [ответить]     [к модератору]
  • +3 +/
    круче - судя по образцу применения - их можно выполнять на боевых серверах прямо... весь текст скрыт [показать]
     
     
  • 3.6, Аноним (6), 12:17, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Этот же дев и питон запилил. Походу хобби такое
     
     
  • 4.10, нах (?), 13:16, 21/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    о, там еще и js!

    ща понаскриптуем, век будете npm leftpad помнить!

     
  • 1.4, Аноним (4), 11:45, 21/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    > демонстрирует существенный прирост производительности (от 2 до 10 раз).

    В каких ситуациях? Множественные одновременные запросы?

     
     
  • 2.5, Аноним (5), 12:10, 21/11/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    При выполнении специально подготовленного теста.
     
  • 1.7, Аноним (7), 12:21, 21/11/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • –5 +/
    Ткнуть бы щас носом в эту фразу моего начальника отдела, который доказывал мне, ... весь текст скрыт [показать]
     
     
  • 2.8, nondo (?), 12:39, 21/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >нжинксовый php_fpm

    чё сказал?

     
  • 2.9, Аноним (9), 12:48, 21/11/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Речь про накладные расходы на взаимодействие nginx и php-fpm В том же модуле вс... весь текст скрыт [показать]
     
     
  • 3.11, нах (?), 13:21, 21/11/2018 [^] [ответить]     [к модератору]  
  • –5 +/
    запросто может оказаться, что mod_php хуже fpm nginx, и не в пределах погрешност... весь текст скрыт [показать]
     
     
  • 4.16, Алеша (?), 20:42, 21/11/2018 [^] [ответить]     [к модератору]  
  • +4 +/
    Вась, этот самый fpm по скорости сравним с голым апач префорк mod_php Там в пред... весь текст скрыт [показать]
     
     
  • 5.18, Sw00p aka Jerom (?), 21:10, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    а прикол весь в том, что этот пхп не хранит стейта от запроса к запросу, и собственно вопрос, зачем в стейтлесс архитектуре на каждый запрос порождать процесс?
     
     
  • 6.24, blblblblbl (?), 00:33, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    а где написано, что на каждый запрос порождается процесс, ы?
     
     
  • 7.25, Sw00p aka Jerom (?), 02:58, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > а где написано, что на каждый запрос порождается процесс, ы?

    php-fpm.conf открой, там есть параметры контроля количества чайлдов.

    пс: в #top-ку

     
     
  • 8.26, cutlass (?), 04:20, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Выполни top и сможешь лицезреть то, что эти процессы висят постоянно , а не создаются.
     
     
  • 9.35, Sw00p akaJerom (?), 16:50, 22/11/2018 [^] [ответить]     [к модератору]  
  • +/
    idle timeout - не не слышал, то что висят не значить, что 10к реквестов вы... весь текст скрыт [показать]
     
     
  • 10.40, cutlass (?), 03:34, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    У меня число минимальных, максимальных, и начальных процессов одинаково. Они , конечно перезапускаются каждые 10 минут, но в целом пул неизменен.
     
     
  • 11.48, blblblblbl (?), 17:38, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    магия настройки пула такая магия ^_^
     
  • 10.47, blblblblbl (?), 17:36, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    у меня всего 5 штук, внезапно.
    вот веришь, нет, в статик режиме, в динамике или в тредах, если ты делаешь sleep(10), то тебе ничто не поможет
     
     
  • 11.49, Sw00p akaJerom (?), 18:37, 23/11/2018 [^] [ответить]     [к модератору]  
  • +/
    5 процессов пхп одновременно выполнят 5 запросов в секунду если время выполнения... весь текст скрыт [показать]
     
  • 11.50, Sw00p akaJerom (?), 18:55, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    ну собственно и картинка

    https://imh01-inmotionhosting1.netdna-ssl.com/support/images/stories/wp_stack/

     
  • 5.23, blblblblbl (?), 00:32, 22/11/2018 [^] [ответить]    [к модератору]  
  • –3 +/
    Я тебе так скажу. Самый лучший вариант для говнокодерства это апач + php-fpm, ресурсов жрёт почти как nginx + php-fpm, но при этом имеешь полноценный хтаксесс, что для легаси хорошо.
     
     
  • 6.31, Аноним (31), 11:15, 22/11/2018 [^] [ответить]     [к модератору]  
  • +/
    apache mod_php а впереди можно и nginx воткнуть , это из опыта у apache ... весь текст скрыт [показать]
     
     
  • 7.33, тигарэтоя (?), 16:39, 22/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    а что мешает искользовать разные пулы, запуская под отдельными юзерами в случае php-pfm ?
     
  • 7.38, Sw00p aka Jerom (?), 23:22, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    апач работает под одним юзером, всякие mod_suphp подключать нужно, в случае с fpm - все из коробки пашет
     
  • 7.39, Анонес (?), 00:52, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    для схемы апач + php-fpm не нужен nginx, вообще никак
     
  • 4.17, Sw00p aka Jerom (?), 21:06, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    а как же блокировка процесса при выполнении пхп?
     
     
  • 5.22, Аноним (22), 23:39, 21/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Не пугай страусов, пол бетонный. Пушяй полетають..
     
  • 5.27, cutlass (?), 04:20, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Добавляешь больше воркеров в нгникс
     
     
  • 6.32, Аноним (31), 11:16, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    100500???
     
  • 6.36, Sw00p akaJerom (?), 16:52, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    )))))))) чем вам воркер нджинкса поможет если пхп блокирующий и выполняется один запрос одним процессом, при 100rps с временем выполнения скрипта в 1s (секунду) у вас порадится 100 процессов.
     
     
  • 7.41, cutlass (?), 03:43, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Насколько я понял новость, nginx_php будет выполнятся в нити воркера. Значит, чтобы избежать блокирования, вместо чилос воркеров=числу ЦПУ нужно увеличить число воркеров. Количество порождаемых процессов ограничивается настройками, во всяком случае в php-fpm (как там будет в nginx_php не совсем ясно).
      Видимо ты устанавливал php-fpm исключительно "из каропки" не утруждая себя настройкам
    pm.start_servers, pm.min_spare_servers, pm.max_spare_servers. Отсюда радостно кукарекаешь про "у вас порадится 100 процессов.".
      В общем учи матчасть.
     
     
  • 8.43, Sw00p aka Jerom (?), 04:21, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    >>Отсюда радостно кукарекаешь про "у вас порадится 100 процессов.". В общем учи матчасть.

    )))))))))) всё ясно

     
  • 2.52, Аноним (52), 04:26, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    они меряют производительность hello world.
     
  • 1.12, ыы (?), 15:12, 21/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    оно как и перл в нжинксе - блокирует все пока не отработает?
     
     
  • 2.19, нах (?), 21:36, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    судя по примерам - да, yeld надо дергать явно, если хочешь отдохнуть.

     
     
  • 3.28, cutlass (?), 04:21, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    или добавить воркеров
     
     
  • 4.37, Sw00p akaJerom (?), 16:53, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    ересь не несите
     
     
  • 5.42, cutlass (?), 03:43, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Обоснуй
     
     
  • 6.44, Sw00p aka Jerom (?), 04:24, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    выполни тест который я указал выше, отправь 100 одновременных запросов в секунду на один пхп скрипт который будет исполняться всего лишь одну секунду, и посчитай в ps или top сколько процессов форкнулось.
     
  • 1.13, Ilya Indigo (ok), 16:31, 21/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    А .user.ini файлы, как в Apache/FastCGI, он будет читать и понимать?
    Переопределять для разных хостов разные версии PHP, как в Apache/FastCGI можно?
     
  • 1.14, unknown (??), 19:53, 21/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Это же не замена php-fpm,я на этом cms запустить не смогу.
     
     
  • 2.30, Анончик (?), 08:42, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Вот тоже интересно, насколько это возможно.
     
  • 1.15, Аноним (15), 20:07, 21/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А что сказали бы на это программисты из авито и баду?
     
     
  • 2.20, View (?), 21:59, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Они бы сказали: "Вопрос передан разработчикам"
    :-D
     
  • 1.34, xm (ok), 16:45, 22/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Грубо говоря (поправьте меня) что цели те же, что и у встроенного в тот же nginx Luа или mRuby в H2O.
     
     
  • 2.45, тигар (ok), 14:39, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    думаю, что да. ngx_пегл в ту же степь.
     
  • 2.46, тигар (ok), 14:41, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    кстати, в ngx нет встроенного lua, это все благодаря продуктивному на модули китайцу, автору openresty. Если не ошибаюсь, работает во славу алиэкспресс, либо работал
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor