Nginx 1.18.0 шығарыңыз

Бір жылдық дамудан кейін ұсынылған жоғары өнімді HTTP серверінің және мультипротоколды прокси сервердің жаңа тұрақты тармағы nginx 1.18.0, ол 1.17.x негізгі тармақта жинақталған өзгерістерді сіңірді. Болашақта 1.18 тұрақты филиалындағы барлық өзгерістер елеулі қателер мен осалдықтарды жоюға қатысты болады. Жақында nginx 1.19 негізгі тармағы қалыптасады, оның аясында жаңа мүмкіндіктерді дамыту жалғасады. Үшінші тарап модульдерімен үйлесімділікті қамтамасыз ету міндеті жоқ қарапайым пайдаланушылар үшін, ұсынылған негізгі филиалды пайдаланыңыз, оның негізінде Nginx Plus коммерциялық өнімінің шығарылымдары үш ай сайын қалыптасады.

Сәйкес Сәуір есебі Netcraft nginx барлық белсенді сайттардың 19.56% қолданылады (бір жыл бұрын 20.73%, екі жыл бұрын 21.02%), бұл осы санаттағы танымалдық бойынша екінші орынға сәйкес келеді (Apache үлесі 27.64%, Google - 10.03%, Microsoft корпорациясы. IIS - 4.77%) . Сонымен қатар, барлық сайттарды қарастырған кезде nginx көшбасшылығын сақтап қалды және нарықтың 36.91% (бір жыл бұрын 27.52%) алады, ал Apache үлесі 24.73%, Microsoft IIS - 12.85%, Google - 3.42% сәйкес келеді.

Әлемдегі ең көп кіретін миллион сайттардың ішінде nginx үлесі 25.54% (бір жыл бұрын 26.22%, екі жыл бұрын 23.76%). Қазіргі уақытта шамамен 459 миллион веб-сайт Nginx-ті басқарады (бір жыл бұрын 397 миллион). Авторы деректер W3Techs nginx ең көп кірген миллион сайттардың 31.9% пайдаланылады, өткен жылдың сәуірінде бұл көрсеткіш 41.8%, алдыңғы жылы 38% (төмендеу Cloudflare http серверінің бөлек есепке алуына көшумен түсіндіріледі). Apache үлесі бір жыл ішінде 43.6%-дан 38.9%-ға, ал Microsoft IIS үлесі 8.6%-дан 8.3%-ға дейін төмендеді. Ресейде nginx пайдаланылады ең көп кірген сайттардың 78.9%-ында (бір жыл бұрын – 81%).

1.17.x жоғарғы тармағын әзірлеу кезінде қосылған ең маңызды жақсартулар:

  • Директивалар қосылды Шектеу_құрғақ_жегу, ол сұрауды өңдеу қарқындылығына ешқандай шектеулер қолданылмайтын (ставканы шектеусіз), бірақ ортақ жадтағы шектеулерден асатын сұраулар санын есепке алуды жалғастыратын сынақты іске қосу режимін іске қосады;
  • Директивалар қосылды шектеу_конн_құрғақ_жегу, ол ngx_http_limit_conn_module модулін сынақты іске қосу режиміне ауыстырады, онда қосылымдар саны шектелмейді, бірақ ескеріледі;
  • Директивасы қосылдыauth_delay", бұл құпия сөзді болжау қарқындылығын азайту және одан қорғау үшін 401 жауап коды бар рұқсат етілмеген сұрауларға кідіріс қосуға мүмкіндік береді. шабуылдар, қол жеткізу шектелген жүйелерге қол жеткізу кезінде операциялардың орындалу уақытын өлшеумен манипуляциялау (таймдық шабуыл) пароль, ішкі сұраудың нәтижесі немесе J.W.T. (JSON Web Token);
  • "Limit_rate" және "limit_rate_after" директиваларындағы, сондай-ақ ағындық модулінің "proxy_upload_rate" және "proxy_download_rate" директиваларындағы айнымалыларға қолдау қосылды;
  • Директивада grpc_pass мекенжайды анықтайтын параметрде айнымалы мәнді пайдалану үшін қосылған қолдау. Егер мекенжай домендік атау ретінде көрсетілсе, атау серверлердің сипатталған топтары арасында ізделеді, ал егер табылмаса, онда шешуші көмегімен анықталады;
  • Жаңа айнымалылар қосылды $proxy_protocol_server_addr и $proxy_protocol_server_port, оларда PROXY протоколының тақырыбынан алынған сервер мекенжайы мен порты бар;
  • Модульде ngx_stream_limit_conn_module айнымалы қосылды $limit_conn_status, ол қосылымдар санын шектеу нәтижесін сақтайды: PASSED, REJECTED немесе REJECTED_DRY_RUN;
  • Модульде ngx_http_limit_req_модуль айнымалы қосылды $limit_req_status, ол сұраулардың келу жылдамдығын шектеу нәтижесін сақтайды: ӨТТІ, КЕШІКТІРІЛДІ, ҚАБЫЛДАДЫ, КЕШІКТІКТЕРДІ_ҚҰРҒЫТТЫ_RUN немесе ҚАБЫЛДАДЫ_ҚҰРҒЫТТЫ_RUN;
  • Әдепкі бойынша, модуль жиналған ngx_http_postpone_filter_module;
  • Кірістірілген Perl интерпретаторымен қамтамасыз етілген $r->internal_redirect() әдісін пайдаланып, "орын" блоктарын ауыстырып қосуға қолдау қосылды. Бұл әдіс енді қашып кеткен таңбалары бар URI өңдеуді қамтиды;
  • «Жоғарғы ағын» параметрлер блогында «жоғары ағын» директивасын пайдаланған кездехэш» клиент-сервер байланыстыру арқылы жүктемені теңестіруді ұйымдастыру үшін, егер бос кілт мәнін көрсетсеңіз, біркелкі теңдестіру режимі (айналдыру) енді іске қосылады;
  • Уақыт өте жылдам қосылымнан оқуды болдырмау үшін қол жетімді болса, ioctl(FIONREAD) қоңырауына қолдау қосылды.

Ақпарат көзі: opennet.ru

пікір қалдыру