Wedi cyflwyno gweinydd HTTP ôl-olwg gan ddefnyddio is-system io_uring Linux

Mae gweinydd HTTP cryno, hinsightd, wedi'i gyhoeddi, sy'n nodedig am ei ddefnydd o'r rhyngwyneb I/O asyncronaidd io_uring a ddarperir yn y cnewyllyn Linux. Mae'r gweinydd yn cefnogi'r protocol HTTP/1.1 ac mae wedi'i gynllunio ar gyfer defnydd isel o adnoddau tra'n darparu ymarferoldeb yn ôl y galw. Er enghraifft, mae hinsightd yn cefnogi TLS, dirprwy wrthdro (rproxy), caching cynnwys a gynhyrchir yn ddeinamig yn y system ffeiliau leol, cywasgu data a drosglwyddir yn hedfan, ailgychwyn heb dorri cysylltiadau sefydledig, cysylltu trinwyr ceisiadau deinamig gan ddefnyddio mecanweithiau FastCGI a CGI. Mae cod y prosiect wedi'i ysgrifennu yn C a'i ddosbarthu o dan y drwydded BSD.

I brosesu'r cyfluniad, ysgrifennu ychwanegiadau a chreu trinwyr ceisiadau, mae'n bosibl defnyddio'r iaith Lua, a gellir diffinio trinwyr o'r fath yn uniongyrchol yn ffeil ffurfweddu'r gweinydd. Ar ffurf ategion, mae nodweddion megis newid y fformat cofnodi log, cysylltu logiau unigol i westeion rhithwir, diffinio strategaeth cydbwyso llwyth, dilysu HTTP, ailysgrifennu URL a pherfformio gwaith wedi'i drefnu (er enghraifft, diweddaru tystysgrifau Let's Encrypt) yn cael eu gweithredu.

Daw'r gweinydd gyda llyfrgell ar gyfer integreiddio ymarferoldeb ôl-olwg i'ch cymwysiadau. Mae Hinsightd hefyd yn cynnwys ymarferoldeb integredig ar gyfer anfon ceisiadau HTTP o'r llinell orchymyn, er enghraifft, gallwch redeg y gorchymyn "hinsightd -d URL" i lwytho tudalen. Mae'r gweinydd yn gryno iawn ac yn cymryd tua 200KB ar ffurf gryno (ffeil gweithredadwy 100KB a llyfrgell a rennir 100KB). Mae dibyniaethau allanol yn cynnwys libc, lua, liburing a zlib yn unig, ac yn ddewisol openssl/libressl a ffcall.

Mae cynlluniau ar gyfer datblygiad pellach yn cynnwys y gallu i storio ffeiliau cywasgedig, ynysu blychau tywod yn seiliedig ar hidlo galwadau system a defnyddio gofodau enwau, siapio traffig, aml-edafu, trin gwallau yn well a chanfod gwesteiwr rhithwir yn seiliedig ar fygydau.

Canlyniadau profion perfformiad synthetig (heb optimeiddio yn y ffurfweddiad fel y mae) gyda'r ab utility wrth redeg 250 a 500 (mewn cromfachau) ceisiadau cyfochrog (“ab -k -c 250 -n 10000 http://localhost/”):

  • hinsightd/0.9.17 – 63035.01 cais yr eiliad (54984.63)
  • lighttpd/1.4.67 - 53693.29 cais yr eiliad (1613.59)
  • Apache/2.4.54 - 37474.10 cais yr eiliad (34305.55)
  • Caddy/2.6.2 – 35412.02 cais yr eiliad (33995.57)
  • nginx/1.23.2 - 26673.64 cais yr eiliad (26172.73)

Ffynhonnell: opennet.ru

Ychwanegu sylw