nginx 1.18.0 విడుదల

ఒక సంవత్సరం అభివృద్ధి తర్వాత ద్వారా ప్రాతినిధ్యం వహిస్తుంది అధిక-పనితీరు గల HTTP సర్వర్ మరియు మల్టీప్రొటోకాల్ ప్రాక్సీ సర్వర్ యొక్క కొత్త స్థిరమైన శాఖ nginx 1.18.0, ఇది ప్రధాన శాఖ 1.17.x లోపల పేరుకుపోయిన మార్పులను గ్రహించింది. భవిష్యత్తులో, స్థిరమైన శాఖ 1.18లోని అన్ని మార్పులు తీవ్రమైన లోపాలు మరియు దుర్బలత్వాల తొలగింపుకు సంబంధించినవి. nginx 1.19 యొక్క ప్రధాన శాఖ త్వరలో ఏర్పడుతుంది, దానిలో కొత్త ఫీచర్ల అభివృద్ధి కొనసాగుతుంది. మూడవ పక్షం మాడ్యూళ్ళతో అనుకూలతను నిర్ధారించే పని లేని సాధారణ వినియోగదారుల కోసం, సిఫార్సు ప్రధాన శాఖను ఉపయోగించండి, దీని ఆధారంగా వాణిజ్య ఉత్పత్తి Nginx Plus యొక్క విడుదలలు ప్రతి మూడు నెలలకు ఏర్పడతాయి.

అనుగుణంగా ఏప్రిల్ నివేదిక నెట్‌క్రాఫ్ట్ 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% (క్లౌడ్‌ఫ్లేర్ http సర్వర్ యొక్క ప్రత్యేక అకౌంటింగ్‌కు మారడం ద్వారా క్షీణత వివరించబడింది). Apache యొక్క వాటా సంవత్సరంలో 43.6% నుండి 38.9%కి మరియు Microsoft IIS యొక్క వాటా 8.6% నుండి 8.3%కి పడిపోయింది. రష్యాలో nginx ఉపయోగించబడుతుంది అత్యధికంగా సందర్శించిన సైట్‌లలో 78.9% (ఒక సంవత్సరం క్రితం - 81%).

1.17.x అప్‌స్ట్రీమ్ బ్రాంచ్ అభివృద్ధి సమయంలో జోడించిన అత్యంత ముఖ్యమైన మెరుగుదలలు:

  • డైరెక్టివ్ జోడించబడింది పరిమితి_req_dry_run, ఇది ట్రయల్ రన్ మోడ్‌ను సక్రియం చేస్తుంది, దీనిలో అభ్యర్థన ప్రాసెసింగ్ యొక్క తీవ్రతపై ఎటువంటి పరిమితులు వర్తించవు (రేటు పరిమితి లేకుండా), కానీ షేర్డ్ మెమరీలో పరిమితులను మించిన అభ్యర్థనల సంఖ్యను పరిగణనలోకి తీసుకోవడం కొనసాగుతుంది;
  • డైరెక్టివ్ జోడించబడింది పరిమితి_కాన్_డ్రై_రన్, ఇది ngx_http_limit_conn_module మాడ్యూల్‌ను టెస్ట్ రన్ మోడ్‌లోకి మారుస్తుంది, దీనిలో కనెక్షన్‌ల సంఖ్య పరిమితం కాదు, కానీ పరిగణనలోకి తీసుకోబడుతుంది;
  • ఆదేశం జోడించబడింది"auth_ ఆలస్యం", ఇది పాస్‌వర్డ్ ఊహించడం యొక్క తీవ్రతను తగ్గించడానికి మరియు దాని నుండి రక్షించడానికి 401 ప్రతిస్పందన కోడ్‌తో అనధికార అభ్యర్థనలకు ఆలస్యాన్ని జోడించడానికి మిమ్మల్ని అనుమతిస్తుంది దాడులు, యాక్సెస్ పరిమితంగా ఉన్న సిస్టమ్‌లను యాక్సెస్ చేసేటప్పుడు కార్యకలాపాల అమలు సమయం (టైమింగ్ అటాక్) యొక్క కొలతను మార్చడం పాస్వర్డ్, ఉపప్రశ్న యొక్క ఫలితం లేదా J.W.T. (JSON వెబ్ టోకెన్);
  • స్ట్రీమ్ మాడ్యూల్ యొక్క "ప్రాక్సీ_అప్‌లోడ్_రేట్" మరియు "ప్రాక్సీ_డౌన్‌లోడ్_రేట్" ఆదేశాలతో పాటు "పరిమితి_రేట్" మరియు "లిమిట్_రేట్_ఆఫ్టర్" డైరెక్టివ్‌లలో వేరియబుల్స్‌కు మద్దతు జోడించబడింది;
  • ఆదేశంలో grpc_pass చిరునామాను నిర్వచించే పారామీటర్‌లో వేరియబుల్‌ని ఉపయోగించడం కోసం మద్దతు జోడించబడింది. చిరునామా డొమైన్ పేరుగా పేర్కొనబడితే, ఆ పేరు సర్వర్‌ల యొక్క వివరించిన సమూహాలలో శోధించబడుతుంది మరియు కనుగొనబడకపోతే, పరిష్కరిణిని ఉపయోగించి నిర్ణయించబడుతుంది;
  • కొత్త వేరియబుల్స్ జోడించబడ్డాయి $proxy_protocol_server_addr и $proxy_protocol_server_port, ఇది ప్రాక్సీ ప్రోటోకాల్ హెడర్ నుండి పొందిన సర్వర్ చిరునామా మరియు పోర్ట్‌ను కలిగి ఉంటుంది;
  • మాడ్యూల్ లో ngx_stream_limit_conn_module వేరియబుల్ జోడించబడింది $limit_conn_status, ఇది కనెక్షన్‌ల సంఖ్యను పరిమితం చేసే ఫలితాన్ని నిల్వ చేస్తుంది: PASSED, REJECTED లేదా REJECTED_DRY_RUN;
  • మాడ్యూల్ లో ngx_http_limit_req_module వేరియబుల్ జోడించబడింది $limit_req_status, ఇది అభ్యర్థనల రాక రేటును పరిమితం చేసే ఫలితాన్ని నిల్వ చేస్తుంది: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN లేదా REJECTED_DRY_RUN;
  • డిఫాల్ట్‌గా, మాడ్యూల్ అసెంబుల్ చేయబడింది ngx_http_postpone_filter_module;
  • అంతర్నిర్మిత పెర్ల్ ఇంటర్‌ప్రెటర్ అందించిన $r->internal_redirect() పద్ధతిని ఉపయోగించి "లొకేషన్" బ్లాక్‌లను టోగుల్ చేయడానికి మద్దతు జోడించబడింది. ఈ పద్ధతి ఇప్పుడు తప్పించుకున్న అక్షరాలతో URIలను ప్రాసెస్ చేయడం;
  • "అప్‌స్ట్రీమ్" సెట్టింగ్‌ల బ్లాక్‌లో "అప్‌స్ట్రీమ్" డైరెక్టివ్‌ను ఉపయోగిస్తున్నప్పుడుహాష్» క్లయింట్-సర్వర్ బైండింగ్‌తో లోడ్ బ్యాలెన్సింగ్‌ను నిర్వహించడానికి, మీరు ఖాళీ కీ విలువను పేర్కొంటే, ఏకరీతి బ్యాలెన్సింగ్ మోడ్ (రౌండ్-రాబిన్) ఇప్పుడు సక్రియం చేయబడుతుంది;
  • కాలక్రమేణా వేగవంతమైన కనెక్షన్ నుండి చదవకుండా ఉండటానికి అందుబాటులో ఉంటే ioctl(FIONREAD)కి కాల్ చేయడానికి మద్దతు జోడించబడింది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి