nginx 1.20.0 విడుదల

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

నెట్‌క్రాఫ్ట్ నుండి మార్చి నివేదిక ప్రకారం, nginx అన్ని యాక్టివ్ సైట్‌లలో 20.15% ఉపయోగించబడింది (ఒక సంవత్సరం క్రితం 19.56%, రెండేళ్ల క్రితం 20.73%), ఇది ఈ వర్గంలో ప్రజాదరణలో రెండవ స్థానానికి అనుగుణంగా ఉంది (Apache యొక్క వాటా 25.38%కి అనుగుణంగా ఉంది (ఒక సంవత్సరం క్రితం 27.64%), Google - 10.09%, Cloudflare - 8.51%. అదే సమయంలో, అన్ని సైట్‌లను పరిగణనలోకి తీసుకున్నప్పుడు, nginx తన నాయకత్వాన్ని నిలుపుకుంది మరియు మార్కెట్‌లో 35.34% ఆక్రమించింది (ఒక సంవత్సరం క్రితం 36.91%, రెండేళ్ల క్రితం - 27.52%), Apache వాటా 25.98%, OpenResty (nginx మరియు LuaJIT ఆధారంగా ప్లాట్‌ఫారమ్.) - 6.55%, Microsoft IIS - 5.96%.

ప్రపంచంలో అత్యధికంగా సందర్శించే మిలియన్ సైట్‌లలో, nginx వాటా 25.55% (ఒక సంవత్సరం క్రితం 25.54%, రెండు సంవత్సరాల క్రితం 26.22%). ప్రస్తుతం, సుమారు 419 మిలియన్ వెబ్‌సైట్‌లు Nginx (సంవత్సరం క్రితం 459 మిలియన్లు) నడుస్తున్నాయి. W3Techs ప్రకారం, అత్యధికంగా సందర్శించిన మిలియన్లలో 33.7% సైట్‌లలో nginx ఉపయోగించబడింది, గత సంవత్సరం ఏప్రిల్‌లో ఈ సంఖ్య 31.9%, అంతకు ముందు సంవత్సరం - 41.8% (క్లౌడ్‌ఫ్లేర్ http యొక్క ప్రత్యేక అకౌంటింగ్‌కు మారడం ద్వారా క్షీణత వివరించబడింది. సర్వర్). Apache యొక్క వాటా సంవత్సరానికి 39.5% నుండి 34%కి మరియు Microsoft IIS యొక్క వాటా 8.3% నుండి 7%కి పడిపోయింది. LiteSpeed ​​వాటా 6.3% నుండి 8.4%కి మరియు Node.js 0.8% నుండి 1.2%కి పెరిగింది. రష్యాలో, nginx ఎక్కువగా సందర్శించే సైట్‌లలో 79.1% ఉపయోగించబడుతుంది (ఒక సంవత్సరం క్రితం - 78.9%).

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

  • OCSP (ఆన్‌లైన్ సర్టిఫికేట్ స్టేటస్ ప్రోటోకాల్) ప్రోటోకాల్ ఆధారంగా బాహ్య సేవలను ఉపయోగించి క్లయింట్ సర్టిఫికెట్‌లను ధృవీకరించే సామర్థ్యం జోడించబడింది. తనిఖీని ప్రారంభించడానికి, కాష్ పరిమాణాన్ని కాన్ఫిగర్ చేయడానికి ssl_ocsp డైరెక్టివ్ ప్రతిపాదించబడింది - ssl_ocsp_cache, సర్టిఫికేట్‌లో పేర్కొన్న OCSP హ్యాండ్లర్ యొక్క URLను పునర్నిర్వచించటానికి - ssl_ocsp_responder.
  • ngx_stream_set_module మాడ్యూల్ చేర్చబడింది, ఇది వేరియబుల్ సర్వర్‌కు విలువను కేటాయించడానికి మిమ్మల్ని అనుమతిస్తుంది {listen 12345; $true 1ని సెట్ చేయండి; }
  • ప్రాక్సీడ్ కనెక్షన్‌లలో కుక్కీల కోసం ఫ్లాగ్‌లను పేర్కొనడానికి ప్రాక్సీ_కూకీ_ఫ్లాగ్స్ డైరెక్టివ్ జోడించబడింది. ఉదాహరణకు, కుక్కీ “వన్”కి “httponly” ఫ్లాగ్‌ను జోడించడానికి మరియు అన్ని ఇతర కుక్కీల కోసం “nosecure” మరియు “samesite=strict” ఫ్లాగ్‌లను జోడించడానికి, మీరు క్రింది నిర్మాణాన్ని ఉపయోగించవచ్చు: proxy_cookie_flags one http మాత్రమే; ప్రాక్సీ_కూకీ_ఫ్లాగ్స్ ~ నోసెక్యూర్ సేమ్‌సైట్=స్ట్రిక్ట్;

    కుక్కీలకు ఫ్లాగ్‌లను జోడించడానికి ఇదే విధమైన userid_flags ఆదేశం ngx_http_userid మాడ్యూల్ కోసం కూడా అమలు చేయబడింది.

  • “ssl_conf_command”, “proxy_ssl_conf_command”, “grpc_ssl_conf_command” మరియు “uwsgi_ssl_conf_command” ఆదేశాలు జోడించబడ్డాయి, వీటితో మీరు OpenSSLని కాన్ఫిగర్ చేయడానికి ఏకపక్ష పారామితులను సెట్ చేయవచ్చు. ఉదాహరణకు, ChaCha సాంకేతికలిపిలు మరియు TLSv1.3 సాంకేతికలిపిల యొక్క అధునాతన కాన్ఫిగరేషన్‌కు ప్రాధాన్యత ఇవ్వడానికి, మీరు ssl_conf_command ఎంపికలను PrioritizeChaChaని పేర్కొనవచ్చు; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
  • "ssl_reject_handshake" డైరెక్టివ్ జోడించబడింది, ఇది SSL కనెక్షన్‌లను చర్చించడానికి అన్ని ప్రయత్నాలను తిరస్కరించమని నిర్దేశిస్తుంది (ఉదాహరణకు, SNI ఫీల్డ్‌లో తెలియని హోస్ట్ పేర్లతో అన్ని కాల్‌లను తిరస్కరించడానికి ఉపయోగించవచ్చు). సర్వర్ {వినండి 443 ssl; ssl_reject_handshake ఆన్; } సర్వర్ {వినండి 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • proxy_smtp_auth డైరెక్టివ్ మెయిల్ ప్రాక్సీకి జోడించబడింది, AUTH కమాండ్ మరియు PLAIN SASL మెకానిజం ఉపయోగించి బ్యాకెండ్‌లో వినియోగదారుని ప్రమాణీకరించడానికి మిమ్మల్ని అనుమతిస్తుంది.
  • "keepalive_time" డైరెక్టివ్ జోడించబడింది, ఇది ప్రతి కీప్-ఎలైవ్ కనెక్షన్ యొక్క మొత్తం జీవితకాలాన్ని పరిమితం చేస్తుంది, ఆ తర్వాత కనెక్షన్ మూసివేయబడుతుంది (keepalive_timeoutతో గందరగోళం చెందకూడదు, ఇది కీప్-ఎలైవ్ కనెక్షన్ మూసివేయబడిన నిష్క్రియ సమయాన్ని నిర్వచిస్తుంది).
  • $connection_time వేరియబుల్ జోడించబడింది, దీని ద్వారా మీరు కనెక్షన్ వ్యవధి గురించి మిల్లీసెకన్ల ఖచ్చితత్వంతో సెకన్లలో సమాచారాన్ని పొందవచ్చు.
  • “proxy_cache_path”, “fastcgi_cache_path”, “scgi_cache_path” మరియు “uwsgi_cache_path” డైరెక్టివ్‌లకు “min_free” పరామితి జోడించబడింది, ఇది ఖాళీ డిస్క్ స్థలం యొక్క కనీస పరిమాణాన్ని నిర్ణయించడం ఆధారంగా కాష్ పరిమాణాన్ని నియంత్రిస్తుంది.
  • "lingering_close", "lingering_time" మరియు "lingering_timeout" ఆదేశాలు HTTP/2తో పని చేయడానికి స్వీకరించబడ్డాయి.
  • HTTP/2లోని కనెక్షన్ ప్రాసెసింగ్ కోడ్ HTTP/1.x అమలుకు దగ్గరగా ఉంది. "http2_recv_timeout", "http2_idle_timeout" మరియు "http2_max_requests" అనే వ్యక్తిగత సెట్టింగ్‌లకు మద్దతు సాధారణ ఆదేశాలు "keepalive_timeout" మరియు "keepalive_requests"కి అనుకూలంగా నిలిపివేయబడింది. "http2_max_field_size" మరియు "http2_max_header_size" సెట్టింగ్‌లు తీసివేయబడ్డాయి మరియు బదులుగా "large_client_header_buffers"ని ఉపయోగించాలి.
  • కొత్త కమాండ్ లైన్ ఎంపిక “-e” జోడించబడింది, ఇది లోపం లాగ్‌ను వ్రాయడానికి ప్రత్యామ్నాయ ఫైల్‌ను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది, ఇది సెట్టింగ్‌లలో పేర్కొన్న లాగ్‌కు బదులుగా ఉపయోగించబడుతుంది. ఫైల్ పేరుకు బదులుగా, మీరు ప్రత్యేక విలువ stderrని పేర్కొనవచ్చు.

మూలం: opennet.ru

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