nginx 1.20.0 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿ

ಒಂದು ವರ್ಷದ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ HTTP ಸರ್ವರ್ ಮತ್ತು ಬಹು-ಪ್ರೊಟೊಕಾಲ್ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ nginx 1.20.0 ನ ಹೊಸ ಸ್ಥಿರ ಶಾಖೆಯನ್ನು ಪರಿಚಯಿಸಲಾಗಿದೆ, ಇದು ಮುಖ್ಯ ಶಾಖೆ 1.19.x ನಲ್ಲಿ ಸಂಗ್ರಹವಾದ ಬದಲಾವಣೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಭವಿಷ್ಯದಲ್ಲಿ, ಸ್ಥಿರ ಶಾಖೆ 1.20 ರಲ್ಲಿನ ಎಲ್ಲಾ ಬದಲಾವಣೆಗಳು ಗಂಭೀರ ದೋಷಗಳು ಮತ್ತು ದುರ್ಬಲತೆಗಳ ನಿರ್ಮೂಲನೆಗೆ ಸಂಬಂಧಿಸಿವೆ. ಶೀಘ್ರದಲ್ಲೇ nginx 1.21 ರ ಮುಖ್ಯ ಶಾಖೆ ರಚನೆಯಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳ ಅಭಿವೃದ್ಧಿ ಮುಂದುವರಿಯುತ್ತದೆ. ತೃತೀಯ ಮಾಡ್ಯೂಲ್‌ಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಾತ್ರಿಪಡಿಸುವ ಕಾರ್ಯವನ್ನು ಹೊಂದಿರದ ಸಾಮಾನ್ಯ ಬಳಕೆದಾರರಿಗೆ, ಮುಖ್ಯ ಶಾಖೆಯನ್ನು ಬಳಸಲು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ, ಅದರ ಆಧಾರದ ಮೇಲೆ ಪ್ರತಿ ಮೂರು ತಿಂಗಳಿಗೊಮ್ಮೆ ವಾಣಿಜ್ಯ ಉತ್ಪನ್ನ Nginx Plus ಬಿಡುಗಡೆಗಳನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ.

Netcraft ನಿಂದ ಮಾರ್ಚ್ ವರದಿಯ ಪ್ರಕಾರ, nginx ಅನ್ನು ಎಲ್ಲಾ ಸಕ್ರಿಯ ಸೈಟ್‌ಗಳಲ್ಲಿ 20.15% (ಒಂದು ವರ್ಷದ ಹಿಂದೆ 19.56%, ಎರಡು ವರ್ಷಗಳ ಹಿಂದೆ 20.73%) ಬಳಸಲಾಗಿದೆ, ಇದು ಈ ವರ್ಗದಲ್ಲಿ ಜನಪ್ರಿಯತೆಯ ಎರಡನೇ ಸ್ಥಾನಕ್ಕೆ ಅನುರೂಪವಾಗಿದೆ (ಅಪಾಚೆಯ ಪಾಲು 25.38% ಗೆ ಅನುರೂಪವಾಗಿದೆ. (ಒಂದು ವರ್ಷದ ಹಿಂದೆ 27.64%), Google - 10.09%, ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ - 8.51%. ಅದೇ ಸಮಯದಲ್ಲಿ, ಎಲ್ಲಾ ಸೈಟ್‌ಗಳನ್ನು ಪರಿಗಣಿಸುವಾಗ, nginx ತನ್ನ ನಾಯಕತ್ವವನ್ನು ಉಳಿಸಿಕೊಂಡಿದೆ ಮತ್ತು ಮಾರುಕಟ್ಟೆಯ 35.34% ಅನ್ನು ಆಕ್ರಮಿಸಿಕೊಂಡಿದೆ (ಒಂದು ವರ್ಷದ ಹಿಂದೆ 36.91%, ಎರಡು ವರ್ಷಗಳ ಹಿಂದೆ - 27.52%), ಅಪಾಚೆ ಪಾಲು 25.98%, OpenResty (nginx ಮತ್ತು LuaJIT ಆಧಾರಿತ ವೇದಿಕೆ.) - 6.55%, ಮೈಕ್ರೋಸಾಫ್ಟ್ IIS - 5.96%.

ಪ್ರಪಂಚದಲ್ಲಿ ಹೆಚ್ಚು ಭೇಟಿ ನೀಡಿದ ಮಿಲಿಯನ್ ಸೈಟ್‌ಗಳಲ್ಲಿ, nginx ನ ಪಾಲು 25.55% ಆಗಿದೆ (ಒಂದು ವರ್ಷದ ಹಿಂದೆ 25.54%, ಎರಡು ವರ್ಷಗಳ ಹಿಂದೆ 26.22%). ಪ್ರಸ್ತುತ, ಸುಮಾರು 419 ಮಿಲಿಯನ್ ವೆಬ್‌ಸೈಟ್‌ಗಳು Nginx ಅನ್ನು ಚಾಲನೆ ಮಾಡುತ್ತಿವೆ (459 ಮಿಲಿಯನ್ ಒಂದು ವರ್ಷದ ಹಿಂದೆ). W3Techs ಪ್ರಕಾರ, ಹೆಚ್ಚು ಭೇಟಿ ನೀಡಿದ ಮಿಲಿಯನ್‌ಗಳಲ್ಲಿ 33.7% ಸೈಟ್‌ಗಳಲ್ಲಿ nginx ಅನ್ನು ಬಳಸಲಾಗಿದೆ, ಕಳೆದ ವರ್ಷ ಏಪ್ರಿಲ್‌ನಲ್ಲಿ ಈ ಅಂಕಿ ಅಂಶವು 31.9% ಆಗಿತ್ತು, ಹಿಂದಿನ ವರ್ಷ - 41.8% (ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ http ನ ಪ್ರತ್ಯೇಕ ಲೆಕ್ಕಪತ್ರಕ್ಕೆ ಪರಿವರ್ತನೆಯಿಂದ ಕುಸಿತವನ್ನು ವಿವರಿಸಲಾಗಿದೆ. ಸರ್ವರ್). ಅಪಾಚೆಯ ಪಾಲು ವರ್ಷದಲ್ಲಿ 39.5% ರಿಂದ 34% ಕ್ಕೆ ಕುಸಿಯಿತು ಮತ್ತು ಮೈಕ್ರೋಸಾಫ್ಟ್ IIS ನ ಪಾಲು 8.3% ರಿಂದ 7% ಕ್ಕೆ ಕುಸಿಯಿತು. LiteSpeed ​​ನ ಪಾಲು 6.3% ರಿಂದ 8.4% ಕ್ಕೆ ಮತ್ತು Node.js 0.8% ರಿಂದ 1.2% ಕ್ಕೆ ಏರಿತು. ರಷ್ಯಾದಲ್ಲಿ, ಹೆಚ್ಚು ಭೇಟಿ ನೀಡಿದ ಸೈಟ್‌ಗಳಲ್ಲಿ 79.1% (ಒಂದು ವರ್ಷದ ಹಿಂದೆ - 78.9%) nginx ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

1.19.x ಅಪ್‌ಸ್ಟ್ರೀಮ್ ಶಾಖೆಯ ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ ಸೇರಿಸಲಾದ ಅತ್ಯಂತ ಗಮನಾರ್ಹ ಸುಧಾರಣೆಗಳು:

  • OCSP (ಆನ್‌ಲೈನ್ ಪ್ರಮಾಣಪತ್ರ ಸ್ಥಿತಿ ಪ್ರೋಟೋಕಾಲ್) ಪ್ರೋಟೋಕಾಲ್ ಆಧಾರದ ಮೇಲೆ ಬಾಹ್ಯ ಸೇವೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಪರಿಶೀಲನೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು, ssl_ocsp ನಿರ್ದೇಶನವನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ, ಸಂಗ್ರಹ ಗಾತ್ರವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು - ssl_ocsp_cache, ಪ್ರಮಾಣಪತ್ರದಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ OCSP ಹ್ಯಾಂಡ್ಲರ್‌ನ URL ಅನ್ನು ಮರು ವ್ಯಾಖ್ಯಾನಿಸಲು - ssl_ocsp_responder.
  • ngx_stream_set_module ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ವೇರಿಯಬಲ್ ಸರ್ವರ್‌ಗೆ ಮೌಲ್ಯವನ್ನು ನಿಯೋಜಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ {12345 ಆಲಿಸಿ; $true 1 ಅನ್ನು ಹೊಂದಿಸಿ; }
  • ಪ್ರಾಕ್ಸಿಡ್ ಸಂಪರ್ಕಗಳಲ್ಲಿ ಕುಕೀಗಳಿಗಾಗಿ ಫ್ಲ್ಯಾಗ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು proxy_cookie_flags ನಿರ್ದೇಶನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಕುಕೀ "ಒಂದು" ಗೆ "http ಮಾತ್ರ" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಸೇರಿಸಲು ಮತ್ತು ಎಲ್ಲಾ ಇತರ ಕುಕೀಗಳಿಗೆ "ನೋಸೆಕ್ಯೂರ್" ಮತ್ತು "samesite= ಕಟ್ಟುನಿಟ್ಟಾದ" ಫ್ಲ್ಯಾಗ್‌ಗಳನ್ನು ಸೇರಿಸಲು, ನೀವು ಈ ಕೆಳಗಿನ ನಿರ್ಮಾಣವನ್ನು ಬಳಸಬಹುದು: proxy_cookie_flags one http ಮಾತ್ರ; proxy_cookie_flags ~ nosecure samesite = ಕಟ್ಟುನಿಟ್ಟಾದ;

    ಕುಕೀಸ್‌ಗೆ ಫ್ಲ್ಯಾಗ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಇದೇ ರೀತಿಯ 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_reject_ಹ್ಯಾಂಡ್ಶೇಕ್ ಆನ್; } ಸರ್ವರ್ {443 ಎಸ್ಎಸ್ಎಲ್ ಆಲಿಸಿ; 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

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ