The OpenNET Project / Index page

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

Релиз nginx 1.20.0

20.04.2021 21:05

После года разработки представлена новая стабильная ветка высокопроизводительного HTTP-сервера и многопротокольного прокси-сервера nginx 1.20.0, которая вобрала в себя изменения, накопленные в основной ветке 1.19.x. В дальнейшем все изменения в стабильной ветке 1.20 будут связаны с устранением серьёзных ошибок и уязвимостей. В скором времени будет сформирована основная ветка nginx 1.21, в которой будет продолжено развитие новых возможностей. Для обычных пользователей, у которых нет задачи обеспечить совместимость со сторонними модулями, рекомендуется использовать основную ветку, на базе которой раз в три месяца формируются выпуски коммерческого продукта Nginx Plus.

В соответствии с мартовским отчетом компании Netcraft nginx используется на 20.15% всех активных сайтов (год назад 19.56%, два года назад 20.73%), что соответствует второму месту по популярности в данной категории (доля Apache соответствует 25.38% (год назад 27.64%), Google - 10.09%, Cloudflare - 8.51%. При этом при рассмотрении всех сайтов nginx сохраняет лидерство и занимает 35.34% рынка (год назад 36.91%, два года назад - 27.52%), в то время как доля Apache соответствует 25.98%, OpenResty (платформа на базе nginx и LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Среди миллиона самых посещаемых сайтов в мире доля nginx составляет 25.55% (год назад 25.54%, два года назад 26.22%). В настоящее время под управлением nginx работает около 419 млн сайтов (год назад 459 млн). По данным W3Techs nginx используется на 33.7% сайтов из миллиона самых посещаемых, в апреле прошлого года этот показатель составлял 31.9%, позапрошлого - 41.8% (спад объясняется переходом к отдельному учёту http-сервера Cloudflare). Доля Apache за год снизилась с 39.5% до 34%, а доля Microsoft IIS с 8.3% до 7%. Доля LiteSpeed выросла с 6.3% до 8.4%, а Node.js с 0.8% до 1.2%. В России nginx используется на 79.1% самых посещаемых сайтов (год назад - 78.9%).

Наиболее заметные улучшения, добавленные в процессе формирования основной ветки 1.19.x:

  • Добавлена возможность поверки клиентских сертификатов с привлечением внешних служб на базе протокола OCSP (Online Certificate Status Protocol). Для включения проверки предложена директива ssl_ocsp, для настройки размера кэша - ssl_ocsp_cache, для переопределения URL OCSP-обработчика, указанного в сертификате - ssl_ocsp_responder.
  • В состав включён модуль ngx_stream_set_module, позволяющий присвоить значение переменной
    
        server {
            listen 12345;
            set    $true 1;
        }
    
  • Добавлена директива proxy_cookie_flags для указания флагов для Cookie в проксируемых соединениях. Например, для добавления к Cookie "one" флага "httponly", а для всех остальных Cookie флагов "nosecure" и "samesite=strict" можно использовать конструкцию:
    
        proxy_cookie_flags one httponly;
        proxy_cookie_flags ~ nosecure samesite=strict;
    

    Похожая директива userid_flags для добавления флагов к Cookie также реализована для модуля ngx_http_userid.

  • Добавлены директивы "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" и "uwsgi_ssl_conf_command", при помощи которых можно задать произвольные параметры для настройки OpenSSL. Например, для приоритизации шифров ChaCha и расширенной настройки шифров TLSv1.3 можно указать
    
       ssl_conf_command Options PrioritizeChaCha;
       ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
    
  • Добавлена директива "ssl_reject_handshake", которая предписывает отвергать все попытки согласования SSL-соединений (например, можно использовать для отклонения всех обращений с неизвестными именами хостов в поле SNI).
    
        server {
            listen 443 ssl;
            ssl_reject_handshake on;
        }
    
        server {
            listen 443 ssl;
            server_name example.com;
            ssl_certificate example.com.crt;
            ssl_certificate_key example.com.key;
        }
    
  • В почтовый прокси добавлена директива proxy_smtp_auth, позволяющая аутентифицировать пользователя на бэкенде при помощи команды AUTH и механизма PLAIN SASL.
  • Добавлена директива "keepalive_time", которая ограничивает общее время жизни каждого keep-alive соединения, после истечении которого соединение будет закрыто (не путать с keepalive_timeout, определяющем время неактивности, после которого keep-alive соединение закрывается).
  • Добавлена переменная $connection_time, через которую можно получить информацию о продолжительности соединения в секундах с миллисекундной точностью.
  • В директивы "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" и "uwsgi_cache_path" добавлен параметр "min_free", регулирующий размер кэша на основе определения минимального размера свободного дискового пространства.
  • Директивы "lingering_close", "lingering_time" и "lingering_timeout" адаптированы для работы с HTTP/2.
  • Код обработки соединений в HTTP/2 приближен к реализации HTTP/1.x. Поддержка отдельных настроек "http2_recv_timeout", "http2_idle_timeout" и "http2_max_requests" прекращена в пользу общих директив "keepalive_timeout" и "keepalive_requests". Удалены настройки "http2_max_field_size" и "http2_max_header_size", вместо которых следует использовать "large_client_header_buffers".
  • Добавлена новая опция командной строки "-e", позволяющая указать альтернативный файл для записи лога ошибок, который будет использоваться вместо лога, заданного в настройках. Вместо имени файла можно указать специальное значение stderr.


  1. Главная ссылка к новости (https://mailman.nginx.org/pipe...)
  2. OpenNews: Предварительный выпуск nginx с поддержкой QUIC и HTTP/3
  3. OpenNews: Спор о правах Rambler на Nginx продолжен в суде США
  4. OpenNews: Релиз nginx 1.18.0
  5. OpenNews: Релиз nginx 1.16.0
  6. OpenNews: Сделка по покупке NGINX компанией F5 Networks успешно завершена
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/54992-nginx
Ключевые слова: nginx
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (70) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, acroobat (ok), 21:23, 20/04/2021 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –22 +/
     
     
  • 2.2, Аноним (2), 21:25, 20/04/2021 Скрыто модератором
  • +6 +/
     
  • 2.4, Шарп (ok), 21:30, 20/04/2021 Скрыто модератором
  • +10 +/
     
     
  • 3.70, слакварявод (ok), 07:15, 21/04/2021 Скрыто модератором
  • +/
     
  • 2.5, Аноним (5), 21:39, 20/04/2021 Скрыто модератором
  • +4 +/
     
  • 2.8, муу (?), 22:02, 20/04/2021 Скрыто модератором
  • +3 +/
     
  • 2.21, Аноним (21), 23:36, 20/04/2021 Скрыто модератором
  • +3 +/
     
     
  • 3.50, mos87 (ok), 06:11, 21/04/2021 Скрыто модератором
  • +/
     
  • 3.62, Аноним (62), 07:04, 21/04/2021 Скрыто модератором
  • –2 +/
     
  • 2.23, Ilya Indigo (ok), 23:58, 20/04/2021 Скрыто модератором
  • –3 +/
     
     
  • 3.26, vx (??), 00:51, 21/04/2021 Скрыто модератором
  • +4 +/
     
     
  • 4.53, Аноним (-), 06:16, 21/04/2021 Скрыто модератором
  • +1 +/
     
  • 3.71, acroobat (ok), 07:34, 21/04/2021 Скрыто модератором
  • +2 +/
     
  • 2.27, Кумбердикт Бомбербатч (?), 00:56, 21/04/2021 Скрыто модератором
  • +/
     
     
  • 3.65, acroobat (ok), 07:10, 21/04/2021 Скрыто модератором
  • +1 +/
     
  • 3.68, Аноним (62), 07:13, 21/04/2021 Скрыто модератором
  • +/
     
  • 2.35, Аноним (35), 04:35, 21/04/2021 Скрыто модератором
  • +/
     
  • 2.58, Аноним (62), 06:58, 21/04/2021 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (17)

  • 1.6, Catwoolfii (ok), 21:49, 20/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В состав включён модуль ngx_stream_set_module, позволяющий присвоить значение переменной

    А чем отличается от такой же директивы в модуле ngx_http_rewrite_module?
    Если установить 'set' в контексте 'server' и оба этих модуля включены, то с какого модуля будет эта директива?

     
     
  • 2.7, Valentin V. Bartenev (?), 21:58, 20/04/2021 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Отличает тем, что один из них http модуль, а другой stream модуль.  Директива будет того модуля, смотря в каком контексте находится server, в контексте http или в контексе stream (TCP/UDP прокси).
     
     
  • 3.15, Аноним (15), 22:30, 20/04/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Не обращайте внимание на болезных) рады видеть
     
  • 3.24, Ilya Indigo (ok), 00:04, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Добрый день!
    Расскажите пожалуйста, что там с поддеркой HTTP/3?
    Я предполагаю, что в основной ветке поддержка HHTP/3 не появится до тех пор, пока не будет утверждён стандарт, но не уверен в этом.
     
     
  • 4.80, Valentin V. Bartenev (?), 11:12, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Работа ведется очень активно: https://hg.nginx.org/nginx-quic/ - на него выделено достаточно ресурсов.  Как правильно заметили, рано пока говорить о завершении активной фазы разработки, учитывая, что стандарт регулярно допиливается.  Плюс со стороны TLS-библиотек тоже не всё так гладко.  Было бы опрометчиво вливать весь этот код в основную ветку, из которой ежегодно создается консервативный stable.  И нужно учитывать, что mainline релизы тоже рассматриваются как стабильные и подходящие для использования в проде, из них даже nginx plus нарезается, а очень активное перелопачивание кода создавало бы дополнительные риски сломать что-нибудь никак с QUIC и HTTP/3 не связанное.

    Мне сложно ответить более конкретно, поскольку уже несколько лет в разработке nginx не учавствую, а занимаюсь Unit-ом.

     

  • 1.11, Аноним (11), 22:15, 20/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Извините, если я слоупочу, но когда там для тпштч подвезут нативный GeoIP2 модуль "из коробки", а не в виде модуля от стороннего разработчика?
    Или никогда так как есть супермодный nginx Plus?
     
     
  • 2.17, Valentin V. Bartenev (?), 22:40, 20/04/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Извините, если я слоупочу, но когда там для тпштч подвезут нативный GeoIP2
    > модуль "из коробки", а не в виде модуля от стороннего разработчика?
    > Или никогда так как есть супермодный nginx Plus?

    N+ комплектуется тем же модулем от стороннего разработчика.

     

  • 1.14, Аноним (14), 22:24, 20/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Чет, по Unit-у давно новостей не было. Он там жив-здоров?
     
     
  • 2.16, Valentin V. Bartenev (?), 22:37, 20/04/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Чет, по Unit-у давно новостей не было. Он там жив-здоров?

    Как же, были: https://www.opennet.ru/opennews/art.shtml?num=54837

    В ближайших релизах через месяц-два можно ожидать chroot для раздачи статики, переменные из регулярных выражений, фильтр по MIME-типам для статики, базовую статистику по запросам/соединениям, настройку параметров OpenSSL.

     
     
  • 3.85, Michael Shigorin (ok), 15:01, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо; тем временем запаковали unit в альт (правда, прямщас 1.22.0).
     
     
  • 4.91, Valentin V. Bartenev (?), 15:43, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вам спасибо!  Попрошу тех.писателя добавить информацию об этом на сайт в раздел Community Repositories: https://unit.nginx.org/installation/#community-repositories
     
  • 3.89, zo0M (ok), 15:39, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    огонь! рад слышать)
     

  • 1.18, Аноним (18), 22:42, 20/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Добавлена директива "ssl_reject_handshake", которая предписывает отвергать все попытки согласования SSL-соединений (например, можно использовать для отклонения всех обращений с неизвестными именами хостов в поле SNI).

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

    А так же вечный вопрос, почему эти аутисты не добавляют https://github.com/cloudflare/sslconfig/blob/master/patches/nginx__dynamic_tls ? У них не хватает знаний програмимрования чтобы написать самим, а добавить патч лицензия не позволяет?

     
     
  • 2.20, Аноним (21), 23:36, 20/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Наложи патч, поддерживай форк. Радуйся, что код открыт и лицензия позволяет.
     
  • 2.22, Аноним (22), 23:45, 20/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если очень надо, то и без опций делается, примерно так

    error_page 400 =@drop;
    location @drop { return 444; }

     
  • 2.55, Аноним (-), 06:19, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > почему эти аутисты не добавляют https://github.com/cloudflare/
    > sslconfig/blob/master/patches/... ?

    Потому что очень нишевая штука. А клаудфлари это зачем? А, для SSL bumping наверное...

     
     
  • 3.98, Аноним (18), 10:55, 22/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты дурачок? хттп сервер это очень нишевая штука?
     
     
  • 4.107, Аноним (-), 21:29, 24/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты дурачок? хттп сервер это очень нишевая штука?

    Dynamic TLS records на нем - таки да, довольно нишевая.

     

  • 1.28, Какаянахренразница (ok), 02:52, 21/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачастили как-то релизы nginx-а...
     
     
  • 2.30, hefenud (ok), 03:12, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Раз в год в апреле выходит новая ветка stable.
    Это ты просто бухаешь много и тебе кажется, что апрели слишком часто
     
     
  • 3.74, Какаянахренразница (ok), 08:58, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > ты просто бухаешь много

    Ты просто завидуешь :-)

    Вообще говоря, мне клятвенно обещали, что на день космонателя будем обмывать релиз. Во-первых, релиз опоздал. Во-вторых, разрабы поляну не накрыли. В общем, слухи о моём частом бухании преувеличены.

     
     
  • 4.95, hefenud (ok), 18:17, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Насколько я помню тебе говорили, что обычно в районе дня космонавтики, а не прямо на него обещали
    Всегда в апреле, всегда после 12 числа, а дальше уж как сформируют релиз
     

  • 1.37, Аноним (37), 04:39, 21/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –14 +/
    Кто-то им всё-ещё пользуется после истории с Рамблером?
     
     
  • 2.76, Организация Объединённых Тюленей (?), 10:22, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Кто-то всё ещё пользуется Рамблером после истории с Nginx?
     
     
  • 3.86, Michael Shigorin (ok), 15:04, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    От имени baSEALt присоединяюсь к исправленной постановке вопроса: https://www.opennet.ru/opennews/art.shtml?num=40615
     

  • 1.38, Lex (??), 05:13, 21/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно другое: почему, в сравнении с прошлым годом, в нынешнем снижение популярности почти по всем пунктам
     
     
  • 2.42, hefenud (ok), 06:00, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У nginx'а нет снижения, на самом деле. Непонятно зачем cloudflare-nginx стали вдруг считать отдельно просто, хотя это тоже nginx
     
     
  • 3.56, Аноним (-), 06:20, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо, оформился в совсем отдельный форк и потому считать его тем же самым все же уже несколько криво стало.
     
     
  • 4.96, hefenud (ok), 18:18, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У меня самого из-за ряда патчей по историческим причинам дефолтно nginx говорит, что он cloudflare-nginx, надо будет при сборке 1.21 в пакет убрать это дело, что бы в общую статистику nginx'а попадали сайты моих клиентов
     
  • 2.90, zo0M (ok), 15:42, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    k8s во все поля,знаете ли. А, там, всё больше и гуще используют всякие разные api-gw на базе Envoy, в том числе.
     

  • 1.40, Дмитрий (??), 05:50, 21/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Недавно перешел на Caddy.
     
     
  • 2.77, helgi (??), 10:27, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По какой причине? Caddy гораздо медленнее.
    github.com/centminmod/centminmod-caddy-v2#http2-https-benchmarks
     
  • 2.84, Аноним (-), 14:26, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Недавно перешел на Caddy.

    Нахрен нужно, фигня на игогошке от хипстеров сабжу по скорости и ресурсам не конкурент.

     

  • 1.41, devkornev (ok), 05:59, 21/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какая-то путаница с версиями. Может кто-то уточнить насчет "рекомендуется"? Версия Nginx Plus делается на основе 1.19, а теперь будет делаться на основе 1.20? Или там что-то более старое (судя по ссылке)?
     
     
  • 2.44, hefenud (ok), 06:03, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    К использованию рекомендуется mainline, а не stable. Именно на нем делается NGINX Plus, именно его использует Yandex и CF, именно он является основным. А stable выходит раз в год и попадает в дистрибутивы, откуда им никто не пользуется.

    Таким образом сейчас рекомендуется брать 1.19.10, а где-то в течении месяца(обычно так) отпочкуется 1.21 и он станет рекомендованным.

    То есть всегда рекомендуется использовать последний mainline, stable не для использования, а просто шоп було

     
     
  • 3.54, mos87 (ok), 06:18, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >stable выходит раз в год и попадает в дистрибутивы, откуда им никто не пользуется.

    И так с половиной софта прд линуксы.

     
  • 3.57, Аноним (-), 06:21, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Или пользуются. Не всем надо самый свежак любой ценой на сервере. Можно видите ли поставить его и оставить сервер в покое. И покуда вулнов нет - все просто работает. Представляете себе, так можно было!
     
  • 3.75, fske (?), 09:38, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >К использованию рекомендуется mainline, а не stable.
    >stable выходит раз в год и попадает в дистрибутивы, откуда им никто не пользуется.

    Что за чушь ты несёшь? Если это был сарказм, то крайне неудачный, потому что сильно воняет глупостью.
    Причем тут дистрибутивы? Сам nginx делает репозитории со стабильными выпусками под разные дистрибутивы, а mainline идёт отдельной веткой(см. http://nginx.org/packages)
    >никто
    >все

    За это уже пора принудительно в психиатричке лечить.

     
  • 3.79, Аноним (18), 11:03, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да не гони. Плюс только идиоты используют. Более того у клаудфларе свой форк и плюс им нафиг не сдался.
     
     
  • 4.81, абв (?), 11:39, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Он говорит что cf использует mainline. И plus -- тоже.
     
     
  • 5.108, Аноним (-), 21:36, 24/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Он говорит что cf использует mainline. И plus -- тоже.

    Судя по всему клаудспайварь и тенсент достаточно разъехались с сабжем чтобы считать себя отдельными апстримами. Видимо иметь дело с апстримом им не особо удобно оказалось. Что, впрочем, не удивительно - чего ожидать если вам сразу на старте hg пытаются всучить...

     
  • 3.101, PnD (??), 14:00, 22/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > А stable выходит раз в год и попадает в дистрибутивы, откуда им никто не пользуется.

    Вот это Вы сейчас громко. Для инфраструктурных задач 99% хватает того что "из коробки".
    Даже nginx-1.7.0-1.el6.x86_64 кое где. Пока всю сборку не заменят. И будет там какой-нибудь "nginx-1.14" из ol8_appstream.

    * Но да, "на счётчики" такое вряд ли попадёт. А ведь подобных инсталляций как бы не в разы больше чем публичных. Что также характеризует уровень популярности продукта.

     

  • 1.60, Аноним (60), 07:02, 21/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Со показом статистики у него туго :( в апаче статистика как балансировщика более расширено показывается. А так нормальй сервер. Долгих лет жизни ему :)))
     
     
  • 2.87, Аноним (87), 15:09, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну это как бы специально так сделано, по принципу "хочешь плюшек - плати за NGINX Plus", у него (плюса) со статистикой всё хорошо.
     

  • 1.69, Аноним (62), 07:14, 21/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    кому что надо, а мне - модуль, чтоб автоматом определять Content-Type на основе заголовка файла
     
     
  • 2.73, fske (?), 08:55, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Анон, тут не стол заказов. надо - бери делай.
     
     
  • 3.100, Аноним (100), 13:32, 22/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не сантехник-самоделкин. Я пользователь.
     
     
  • 4.103, fske (?), 19:46, 22/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Я пользователь

    и? это сразу кого-то к чему-то обязывает?

     
  • 2.78, Аноним (78), 10:58, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это 100% не станут внедрять, только сторонние модули.
     

  • 1.92, Unknown (??), 15:51, 21/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ВОпрос, а апи у nginx не планируется, а то каждый раз конфигурировать при добавление сервиса не хочется?
     
     
  • 2.93, Valentin V. Bartenev (?), 16:11, 21/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    nginx c API называется NGINX Unit.
     
     
  • 3.104, Gemorroj (ok), 22:34, 22/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    _только_ с апи. без нормальных конфигов
     
     
  • 4.105, Valentin V. Bartenev (?), 13:48, 23/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > _только_ с апи. без нормальных конфигов

    Потому, что источник конфигурации должен быть один.  Если вносить изменения двумя способами, то возникает нерешаемая проблема согласованности между внесенными изменениями через файл и через API.  

    Более того, правка конфигурационного файла не позволяет адекватно реагировать на ошибки.  Бессчетное число раз я наблюдал, как люди поправили кофиг nginx, а потом забыли его перезагрузить, либо перезагрузили, но не проверили, что конфиг применился, в итоге получили неисправный или, того хуже, уязвимый сервер, и это может оставаться незамеченным долгое время.

    Когда вы вносите правки через API, то сразу же получаете ответ на каждое изменение - это будет ошибка и изменение не применится, либо изменение успешно принято.  Результат каждой операции сразу же виден.  Кроме того, единый API гарантирует атомарность.

    C Unit-ом вы также можете использовать файлы с конфигурацией для настройки, но делать это необходимо загружая их через API, что позволяет избежать озвученных проблем.

     
     
  • 5.106, Valentin V. Bartenev (?), 13:58, 23/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, очень наглядный пример проблем, которые сопровождают настройку чего-либо путем правки файлов - это существование visudo.  Там последствия ошибки настолько критичны, что править /etc/sudoers предлагается только через специальную утилиту, которая добавлять тот самый момент проверки конфигурации до её сохранения.  То же самое, но более красиво и органично делает Unit API.
     
     
  • 6.109, Аноним (109), 22:02, 24/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И лично я просто выпилил в результате sudo везде где дотянулся. Эта переклиненость на visudo did nothing good: случилась оверинженерия, да еще там где ее быть не должно. Результатом пачка вулнов. Патчить эту штуку каждый месяц, да еще получая вулны когда непривилегированый юзер может стать привилегированным - поднадоело. И остался только su. Такой вот конец истории.

    Интересно, а эта обратная сторона медали на unit'а распостраняется? :)

     
  • 6.110, Аноним (109), 22:03, 24/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    p.s. посмотрите на lwan и проникнитесь как надо было апи для сишников на самом деле делать в вебсерваке. Нжинксу модуль писать таки боль в заду, в отличие от.
     
     
  • 7.111, Аноним (22), 00:06, 28/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    «Посмотрите на lwan в 2003-м году, используя машину времени».

    Задним умоем все крепки. А тогда вообще никаких сторонних модулей не планировалось, и Игорь делал так, как удобно и понятно лично ему.

    Да и ничего такого страшного уж там нет. Порог вхождения, да, выше, несомненно.

     

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



    Спонсоры:
    Inferno Solutions
    Ideco
    A-Real
    Hosting by Hoster.ru
    Хостинг:

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