Phát hành nginx 1.20.0

Sau một năm phát triển, một nhánh ổn định mới của máy chủ HTTP hiệu suất cao và máy chủ proxy đa giao thức nginx 1.20.0 đã được giới thiệu, kết hợp những thay đổi tích lũy trong nhánh chính 1.19.x. Trong tương lai, mọi thay đổi trong nhánh ổn định 1.20 sẽ liên quan đến việc loại bỏ các lỗi và lỗ hổng nghiêm trọng. Nhánh chính của nginx 1.21 sẽ sớm được hình thành, trong đó việc phát triển các tính năng mới sẽ tiếp tục. Đối với người dùng thông thường không có nhiệm vụ đảm bảo khả năng tương thích với các mô-đun của bên thứ ba, nên sử dụng nhánh chính, trên cơ sở đó các bản phát hành sản phẩm thương mại Nginx Plus được hình thành ba tháng một lần.

Theo báo cáo tháng 20.15 từ Netcraft, nginx được sử dụng trên 19.56% trong số tất cả các trang web đang hoạt động (một năm trước là 20.73%, hai năm trước là 25.38%), tương ứng với vị trí phổ biến thứ hai trong danh mục này (thị phần của Apache tương ứng với 27.64% (một năm trước 10.09%), Google - 8.51%, Cloudflare - 35.34%. Đồng thời, khi xem xét tất cả các trang web, nginx vẫn giữ vị trí dẫn đầu và chiếm 36.91% thị trường (một năm trước là 27.52%, hai năm trước - 25.98%), trong khi thị phần của Apache tương ứng với 6.55%, OpenResty (nền tảng dựa trên nginx và LuaJIT.) - 5.96%, Microsoft IIS - XNUMX%.

Trong số hàng triệu trang web được truy cập nhiều nhất trên thế giới, thị phần của nginx là 25.55% (một năm trước là 25.54%, hai năm trước là 26.22%). Hiện tại, có khoảng 419 triệu trang web đang chạy Nginx (459 triệu một năm trước). Theo W3Techs, nginx được sử dụng trên 33.7% trang web trong số hàng triệu trang web được truy cập nhiều nhất, vào tháng 31.9 năm ngoái, con số này là 41.8%, năm trước - 39.5% (sự sụt giảm được giải thích là do việc chuyển sang hạch toán riêng của Cloudflare http máy chủ). Thị phần của Apache đã giảm trong năm từ 34% xuống 8.3% và thị phần của Microsoft IIS từ 7% xuống 6.3%. Thị phần của LiteSpeed ​​​​tăng từ 8.4% lên 0.8% và Node.js từ 1.2% lên 79.1%. Ở Nga, nginx được sử dụng trên 78.9% trang web được truy cập nhiều nhất (một năm trước - XNUMX%).

Những cải tiến đáng chú ý nhất được thêm vào trong quá trình phát triển nhánh ngược dòng 1.19.x:

  • Đã thêm khả năng xác minh chứng chỉ ứng dụng khách bằng các dịch vụ bên ngoài dựa trên giao thức OCSP (Giao thức trạng thái chứng chỉ trực tuyến). Để kích hoạt kiểm tra, chỉ thị ssl_ocsp được đề xuất, để định cấu hình kích thước bộ đệm - ssl_ocsp_cache, để xác định lại URL của trình xử lý OCSP được chỉ định trong chứng chỉ - ssl_ocsp_responder.
  • Mô-đun ngx_stream_set_module được bao gồm, cho phép bạn gán giá trị cho biến server { listen 12345; đặt $true 1; }
  • Đã thêm lệnh proxy_cookie_flags để chỉ định cờ cho Cookie trong các kết nối được ủy quyền. Ví dụ: để thêm cờ “httponly” vào Cookie “one” và cờ “nosecure” và “samesite=strict” cho tất cả các Cookie khác, bạn có thể sử dụng cấu trúc sau: proxy_cookie_flags one httponly; proxy_cookie_flags ~noscure Samesite=strict;

    Một lệnh userid_flags tương tự để thêm cờ vào Cookies cũng được triển khai cho mô-đun ngx_http_userid.

  • Đã thêm các lệnh “ssl_conf_command”, “proxy_ssl_conf_command”, “grpc_ssl_conf_command” và “uwsgi_ssl_conf_command”, mà bạn có thể đặt các tham số tùy ý để định cấu hình OpenSSL. Ví dụ: để ưu tiên mật mã ChaCha và cấu hình nâng cao của mật mã TLSv1.3, bạn có thể chỉ định ssl_conf_command Tùy chọn PrioritizeChaCha; ssl_conf_command Bộ mật mã TLS_CHACHA20_POLY1305_SHA256;
  • Đã thêm lệnh "ssl_reject_handshake", hướng dẫn từ chối mọi nỗ lực đàm phán kết nối SSL (ví dụ: có thể được sử dụng để từ chối tất cả các cuộc gọi có tên máy chủ không xác định trong trường SNI). máy chủ {nghe 443 ssl; ssl_reject_handshake bật; } máy chủ {nghe 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
  • Lệnh proxy_smtp_auth đã được thêm vào proxy thư, cho phép bạn xác thực người dùng trên chương trình phụ trợ bằng lệnh AUTH và cơ chế PLAIN SASL.
  • Đã thêm lệnh "keepalive_time", lệnh này giới hạn tổng thời gian tồn tại của mỗi kết nối duy trì, sau đó kết nối sẽ bị đóng (đừng nhầm lẫn với keepalive_timeout, lệnh này xác định thời gian không hoạt động sau đó kết nối duy trì sẽ bị đóng).
  • Đã thêm biến $connection_time, qua đó bạn có thể nhận thông tin về thời lượng kết nối tính bằng giây với độ chính xác đến mili giây.
  • Tham số “min_free” đã được thêm vào các lệnh “proxy_cache_path”, “fastcgi_cache_path”, “scgi_cache_path” và “uwsgi_cache_path”, quy định kích thước bộ đệm dựa trên việc xác định kích thước tối thiểu của dung lượng ổ đĩa trống.
  • Các lệnh "lingering_close", "lingering_time" và "lingering_timeout" đã được điều chỉnh để hoạt động với HTTP/2.
  • Mã xử lý kết nối trong HTTP/2 gần giống với cách triển khai HTTP/1.x. Hỗ trợ cho các cài đặt riêng lẻ "http2_recv_timeout", "http2_idle_timeout" và "http2_max_requests" đã bị ngừng hỗ trợ theo các chỉ thị chung "keepalive_timeout" và "keepalive_requests". Cài đặt "http2_max_field_size" và "http2_max_header_size" đã bị xóa và thay vào đó nên sử dụng "large_client_header_buffers".
  • Đã thêm tùy chọn dòng lệnh mới “-e”, cho phép bạn chỉ định một tệp thay thế để ghi nhật ký lỗi, tệp này sẽ được sử dụng thay vì nhật ký được chỉ định trong cài đặt. Thay vì tên tệp, bạn có thể chỉ định giá trị đặc biệt stderr.

Nguồn: opennet.ru

Thêm một lời nhận xét