Ներկայացրեցին HTTP սերվերը, օգտագործելով Linux io_uring ենթահամակարգը

Հրապարակվել է կոմպակտ HTTP սերվեր, որը աչքի է ընկնում Linux-ի միջուկում տրամադրված io_uring ասինխրոն I/O ինտերֆեյսի օգտագործմամբ: Սերվերն աջակցում է HTTP/1.1 արձանագրությանը և նախատեսված է ռեսուրսների ցածր սպառման համար՝ միաժամանակ ապահովելով շատ անհրաժեշտ ֆունկցիոնալությունը: Օրինակ, hinsightd-ն աջակցում է TLS-ին, հակադարձ պրոքսիինգին (rproxy), տեղական ֆայլային համակարգում դինամիկ գեներացվող բովանդակության քեշավորմանը, տվյալների սեղմում, առանց կապի վերագործարկման, FastCGI և CGI մեխանիզմների օգտագործմամբ դինամիկ հարցումների մշակողների միացում: Ծրագրի կոդը գրված է C լեզվով և տարածվում է BSD լիցենզիայի ներքո:

Կազմաձևը մշակելու, լրացումներ գրելու և հարցումների մշակիչներ ստեղծելու համար տրամադրվում է Lua լեզուն օգտագործելու հնարավորությունը, մինչդեռ այդպիսի մշակողները կարող են սահմանվել անմիջապես սերվերի կազմաձևման ֆայլում: Փլագինների տեսքով այնպիսի առանձնահատկություններ, ինչպիսիք են գրանցման ձևաչափը փոխելը, առանձին տեղեկամատյանները վիրտուալ հոսթներին կապելը, բեռի հավասարակշռման ռազմավարության սահմանումը, HTTP նույնականացումը, URL-ի վերագրումը և պլանավորված պլանավորված աշխատանքը (օրինակ՝ Let's Encrypt վկայագրերի թարմացումը) ներդրված են: պլագինների ձև:

Սերվերը գալիս է գրադարանով, որը թույլ է տալիս ներդնել խորաթափանց ֆունկցիոնալությունը ձեր հավելվածներում: Hinsightd-ը նաև ներառում է ինտեգրված գործառույթ՝ հրամանի տողից HTTP հարցումներ ուղարկելու համար, օրինակ՝ էջը բեռնելու համար կարող եք գործարկել «hinsightd -d URL»: Սերվերը շատ կոմպակտ է և կազմում է մոտ 200 ԿԲ (100 ԿԲ գործարկվող և 100 ԿԲ ընդհանուր գրադարան): Արտաքին կախվածությունները ներառում են միայն libc, lua, liburing և zlib, և ընտրովի openssl/libressl և ffcall:

Հետագա զարգացման ծրագրերը ներառում են սեղմված ֆայլերը պահոցում պահելու հնարավորությունը, ավազատուփի մեկուսացումը` հիմնված համակարգի զանգերի զտման և անվանատարածքների օգտագործման վրա, թողունակության կառավարում (երթևեկության ձևավորում), բազմաթելեր, սխալների բարելավված մշակում և դիմակների վրա հիմնված վիրտուալ հոսթերների սահմանում:

250 և 500 (փակագծերում) զուգահեռ հարցումներ գործարկելու ժամանակ («ab -k -c 250 -n 10000 http://localhost/») սինթետիկ կատարողականի փորձարկման արդյունքները (առանց օպտիմալացումների կոնֆիգուրացիայի մեջ, ինչպես որ կա) ab utility-ի կողմից.

  • hinsightd/0.9.17 - 63035.01 հարցում վայրկյանում (54984.63)
  • lighttpd/1.4.67 - 53693.29 հարցում վայրկյանում (1613.59)
  • Apache/2.4.54 - 37474.10 հարցում վայրկյանում (34305.55)
  • Caddy/2.6.2 - 35412.02 հարցում վայրկյանում (33995.57)
  • nginx/1.23.2 - 26673.64 հարցում վայրկյանում (26172.73)

Source: opennet.ru

Добавить комментарий