nginx 1.20.0 berdan

Piştî salek pêşkeftinê, şaxek nû ya stabîl a servera HTTP-a performansa bilind û servera proxy-ya pir-protokolî nginx 1.20.0 hate destnîşan kirin, ku guherînên ku di şaxê sereke 1.19.x de hatine berhev kirin vedihewîne. Di pêşerojê de, hemî guhertinên di şaxê stabîl 1.20 de dê bi rakirina xeletî û qelsiyên giran ve girêdayî bin. Zû zû şaxa sereke ya nginx 1.21 dê were damezrandin, ku tê de pêşveçûna taybetmendiyên nû dê berdewam bike. Ji bo bikarhênerên asayî yên ku ne xwediyê peywira dabînkirina lihevhatina bi modulên partiya sêyemîn in, tê pêşniyar kirin ku şaxa sereke bikar bînin, li ser bingeha ku her sê mehan carekê serbestberdana hilberê bazirganî Nginx Plus têne çêkirin.

Li gorî raporek Adarê ji Netcraft, nginx li ser 20.15% ji hemî malperên çalak tê bikar anîn (salek berê 19.56%, du sal berê 20.73%), ku di vê kategoriyê de di populerbûna duyemîn de cih digire (parçeya Apache bi %25.38 (salek berê 27.64%), Google - 10.09%, Cloudflare - 8.51%. Di heman demê de, dema ku hemî malperan dihesibînin, nginx serokatiya xwe diparêze û% 35.34 ji sûkê digire (salek berê 36.91%, du sal berê - 27.52%), dema ku pişka Apache bi 25.98%, OpenResty (platforma li ser bingeha nginx û LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.

Di nav mîlyon malperên herî zêde yên li cîhanê de, para nginx% 25.55 e (salek berê 25.54%, du sal berê 26.22%). Heya nuha, nêzîkê 419 mîlyon malper Nginx (459 mîlyon salek berê) dimeşînin. Li gorî W3Techs, nginx li ser 33.7% malperên ji mîlyona ku herî zêde hatine serdan tê bikar anîn, di Nîsana sala borî de ev hejmar bû 31.9%, salek berê - 41.8% (kêmbûn bi derbasbûna hesabê veqetandî ya Cloudflare http tê rave kirin. server). Parçeya Apache di salê de ji 39.5% daket 34%, û para Microsoft IIS ji 8.3% daket 7%. Parçeya LiteSpeed ​​ji 6.3% berbi 8.4%, û Node.js ji 0.8% berbi 1.2% mezin bû. Li Rûsyayê, nginx li ser 79.1% ji malperên herî serdankirî (salek berê - 78.9%) tê bikar anîn.

Pêşveçûnên herî berbiçav ên ku di dema pêşkeftina şaxê jorîn 1.19.x de hatine zêdekirin:

  • Kapasîteya verastkirina sertîfîkayên xerîdar bi karanîna karûbarên derveyî li ser bingeha protokola OCSP (Protokola Rewşa Sertîfîkaya Serhêl) zêde kir. Ji bo çalakkirina kontrolê, rêwerza ssl_ocsp tê pêşniyar kirin, ji bo mîhengkirina mezinahiya cache - ssl_ocsp_cache, ji nû ve pênasekirina URL-ya hilgirê OCSP ku di sertîfîkayê de hatî destnîşan kirin - ssl_ocsp_responder.
  • Modula ngx_stream_set_module tê de ye, ku destûrê dide te ku hûn nirxek ji servera guhêrbar re diyar bikin { listen 12345; set $true 1; }
  • Rêbernameya proxy_cookie_flags lê zêde kir da ku di girêdanên proxied de alayên Cookies diyar bike. Mînakî, ji bo lê zêdekirina ala "http tenê" li Cookie "one", û alayên "nosecure" û "samesite=strict" ji bo hemî Cookie-yên din, hûn dikarin vê avakirina jêrîn bikar bînin: proxy_cookie_flags one http only; proxy_cookie_flags ~ nosecure samesite=strict;

    Rêvebirek userid_flags a heman rengî ji bo zêdekirina alayan li Cookies jî ji bo modula ngx_http_userid tête bicîh kirin.

  • Rêbernameyên "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" û "uwsgi_ssl_conf_command" hatine zêdekirin, bi wan re hûn dikarin ji bo veavakirina OpenSSL-ê pîvanên keyfî destnîşan bikin. Mînakî, ji bo pêşîgirtina şîfreyên ChaCha û veavakirina pêşkeftî ya şîfreyên TLSv1.3, hûn dikarin ssl_conf_command Vebijarkên PrioritizeChaCha diyar bikin; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • Rêbernameya "ssl_reject_handshake" lê zêde kir, ku ferman dide ku hemî hewildanên danûstandina girêdanên SSL-ê red bikin (mînak, dikare ji bo redkirina hemî bangên bi navên mêvandar ên nenas di qada SNI de were bikar anîn). 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; }
  • Rêvebiriya proxy_smtp_auth li proxy nameyê hate zêdekirin, ku dihêle hûn bi karanîna fermana AUTH û mekanîzmaya PLAIN SASL bikarhênerê li ser piştê rast bikin.
  • Rêvebiriya "keepalive_time" lê zêde kir, ku tevahiya jiyana her girêdana bihêle-live sînordar dike, piştî ku girêdan dê were girtin (ku bi keepalive_timeout re neyê tevlihev kirin, ku dema bêçalaktiyê diyar dike piştî ku pêwendiya keep-alive girtî ye).
  • Guherbara $connection_time lê zêde kir, bi navgîniya wê hûn dikarin bi hûrguliya milîsaniyeyê di çirkeyan de agahdariya dirêjahiya girêdanê bistînin.
  • Parametreyek "min_free" li rêwerzên "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" û "uwsgi_cache_path" hate zêdekirin, ku mezinahiya cache-ê li ser bingeha destnîşankirina herî kêm mezinahiya cîhê dîskê ya belaş rêve dike.
  • Rêbernameyên "lingering_close", "lingering_time" û "lingering_timeout" hatine adaptekirin ku bi HTTP/2 re bixebitin.
  • Koda pêvajoya pêwendiyê di HTTP/2 de nêzî pêkanîna HTTP/1.x ye. Piştgiriya mîhengên takekesî "http2_recv_timeout", "http2_idle_timeout" û "http2_max_requests" ji bo rêwerzên gelemperî "keepalive_timeout" û "keepalive_requests" hate sekinandin. Mîhengên "http2_max_field_size" û "http2_max_header_size" hatin rakirin û divê li şûna wê "large_client_header_buffers" bên bikaranîn.
  • Vebijarkek rêza fermanê ya nû "-e" lê zêde kir, ku dihêle hûn pelek alternatîf ji bo nivîsandina têketina xeletiyê diyar bikin, ku dê li şûna têketina ku di mîhengan de hatî destnîşan kirin were bikar anîn. Li şûna navê pelê, hûn dikarin nirxa taybetî ya stderr diyar bikin.

Source: opennet.ru

Add a comment