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%), ಇದು ಈ ವರ್ಗದಲ್ಲಿ ಜನಪ್ರಿಯತೆಯ ಎರಡನೇ ಸ್ಥಾನಕ್ಕೆ ಅನುರೂಪವಾಗಿದೆ (ಅಪಾಚೆಯ ಪಾಲು 27.64%, Google - 10.03%, ಮೈಕ್ರೋಸಾಫ್ಟ್ IIS - 4.77%) . ಅದೇ ಸಮಯದಲ್ಲಿ, ಎಲ್ಲಾ ಸೈಟ್‌ಗಳನ್ನು ಪರಿಗಣಿಸುವಾಗ, nginx ತನ್ನ ನಾಯಕತ್ವವನ್ನು ಉಳಿಸಿಕೊಂಡಿದೆ ಮತ್ತು ಮಾರುಕಟ್ಟೆಯ 36.91% ಅನ್ನು ಆಕ್ರಮಿಸಿಕೊಂಡಿದೆ (ಒಂದು ವರ್ಷದ ಹಿಂದೆ 27.52%), ಆದರೆ ಅಪಾಚೆಯ ಪಾಲು 24.73%, ಮೈಕ್ರೋಸಾಫ್ಟ್ IIS - 12.85%, ಗೂಗಲ್ - 3.42%.

ಪ್ರಪಂಚದಲ್ಲಿ ಹೆಚ್ಚು ಭೇಟಿ ನೀಡಿದ ಮಿಲಿಯನ್ ಸೈಟ್‌ಗಳಲ್ಲಿ, nginx ನ ಪಾಲು 25.54% ಆಗಿದೆ (ಒಂದು ವರ್ಷದ ಹಿಂದೆ 26.22%, ಎರಡು ವರ್ಷಗಳ ಹಿಂದೆ 23.76%). ಪ್ರಸ್ತುತ, ಸುಮಾರು 459 ಮಿಲಿಯನ್ ವೆಬ್‌ಸೈಟ್‌ಗಳು Nginx ಅನ್ನು ಚಾಲನೆ ಮಾಡುತ್ತಿವೆ (397 ಮಿಲಿಯನ್ ಒಂದು ವರ್ಷದ ಹಿಂದೆ). ಮೂಲಕ ನೀಡಲಾಗಿದೆ W3Techs nginx ಅನ್ನು ಹೆಚ್ಚು ಭೇಟಿ ನೀಡಿದ ಮಿಲಿಯನ್‌ಗಳಲ್ಲಿ 31.9% ಸೈಟ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾಗಿದೆ, ಕಳೆದ ವರ್ಷ ಏಪ್ರಿಲ್‌ನಲ್ಲಿ ಈ ಅಂಕಿ ಅಂಶವು 41.8% ಆಗಿತ್ತು, ಹಿಂದಿನ ವರ್ಷ - 38% (ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ http ಸರ್ವರ್‌ನ ಪ್ರತ್ಯೇಕ ಲೆಕ್ಕಪತ್ರಕ್ಕೆ ಪರಿವರ್ತನೆಯಿಂದ ಕುಸಿತವನ್ನು ವಿವರಿಸಲಾಗಿದೆ). ಅಪಾಚೆಯ ಪಾಲು ವರ್ಷದಲ್ಲಿ 43.6% ರಿಂದ 38.9% ಕ್ಕೆ ಮತ್ತು ಮೈಕ್ರೋಸಾಫ್ಟ್ IIS ನ ಪಾಲು 8.6% ರಿಂದ 8.3% ಕ್ಕೆ ಕುಸಿಯಿತು. ರಷ್ಯಾದಲ್ಲಿ nginx ಬಳಸಲಾಗುತ್ತದೆ ಹೆಚ್ಚು ಭೇಟಿ ನೀಡಿದ ಸೈಟ್‌ಗಳಲ್ಲಿ 78.9% (ಒಂದು ವರ್ಷದ ಹಿಂದೆ - 81%).

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

  • ನಿರ್ದೇಶನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮಿತಿ_req_dry_run, ಇದು ಪ್ರಾಯೋಗಿಕ ರನ್ ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ವಿನಂತಿಯ ಪ್ರಕ್ರಿಯೆಯ ತೀವ್ರತೆಯ ಮೇಲೆ ಯಾವುದೇ ನಿರ್ಬಂಧಗಳನ್ನು ಅನ್ವಯಿಸುವುದಿಲ್ಲ (ದರ ಮಿತಿಯಿಲ್ಲದೆ), ಆದರೆ ಹಂಚಿಕೆಯ ಮೆಮೊರಿಯಲ್ಲಿ ಮಿತಿಗಳನ್ನು ಮೀರಿದ ವಿನಂತಿಗಳ ಸಂಖ್ಯೆಯನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ;
  • ನಿರ್ದೇಶನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮಿತಿ_ಕಾನ್_ ಡ್ರೈ_ ರನ್, ಇದು ngx_http_limit_conn_module ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಟೆಸ್ಟ್ ರನ್ ಮೋಡ್‌ಗೆ ಬದಲಾಯಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಸಂಪರ್ಕಗಳ ಸಂಖ್ಯೆ ಸೀಮಿತವಾಗಿಲ್ಲ, ಆದರೆ ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ;
  • ನಿರ್ದೇಶನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ "auth_delay", ಪಾಸ್ವರ್ಡ್ ಊಹೆಯ ತೀವ್ರತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಅದರ ವಿರುದ್ಧ ರಕ್ಷಿಸಲು 401 ರ ಪ್ರತಿಕ್ರಿಯೆ ಕೋಡ್ನೊಂದಿಗೆ ಅನಧಿಕೃತ ವಿನಂತಿಗಳಿಗೆ ವಿಳಂಬವನ್ನು ಸೇರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ ದಾಳಿಗಳು, ಪ್ರವೇಶ ಸೀಮಿತವಾಗಿರುವ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಪ್ರವೇಶಿಸುವಾಗ ಕಾರ್ಯಾಚರಣೆಗಳ (ಟೈಮಿಂಗ್ ಅಟ್ಯಾಕ್) ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯದ ಮಾಪನವನ್ನು ಕುಶಲತೆಯಿಂದ ನಿರ್ವಹಿಸುವುದು ಗುಪ್ತಪದ, ಉಪವಿಚಾರದ ಫಲಿತಾಂಶ ಅಥವಾ ಜೆಡಬ್ಲ್ಯೂಟಿ (JSON ವೆಬ್ ಟೋಕನ್);
  • "limit_rate" ಮತ್ತು "limit_rate_after" ನಿರ್ದೇಶನಗಳಲ್ಲಿ ಅಸ್ಥಿರಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಹಾಗೆಯೇ ಸ್ಟ್ರೀಮ್ ಮಾಡ್ಯೂಲ್‌ನ "proxy_upload_rate" ಮತ್ತು "proxy_download_rate" ನಿರ್ದೇಶನಗಳಲ್ಲಿ;
  • ನಿರ್ದೇಶನದಲ್ಲಿ 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

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