nginx 1.18.0 منتشر شد

پس از یک سال توسعه ارایه شده شاخه پایدار جدید سرور HTTP با کارایی بالا و سرور پروکسی چند پروتکلی nginx 1.18.0، که تغییرات انباشته شده در شاخه اصلی 1.17.x را جذب کرد. در آینده، تمام تغییرات در شاخه پایدار 1.18 مربوط به حذف خطاها و آسیب پذیری های جدی خواهد بود. شاخه اصلی nginx 1.19 به زودی تشکیل می شود که در آن توسعه ویژگی های جدید ادامه خواهد داشت. برای کاربران عادی که وظیفه اطمینان از سازگاری با ماژول های شخص ثالث را ندارند، توصیه می شود از شعبه اصلی استفاده کنید که بر اساس آن هر سه ماه یکبار انتشار محصول تجاری Nginx Plus تشکیل می شود.

مطابق با گزارش آوریل Netcraft nginx در 19.56٪ از کل سایت های فعال (یک سال قبل 20.73٪، دو سال قبل 21.02٪) استفاده می شود که با رتبه دوم محبوبیت در این دسته مطابقت دارد (سهم آپاچی مربوط به 27.64٪ است، گوگل - 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٪ (کاهش با انتقال به حسابداری جداگانه سرور Cloudflare http توضیح داده می شود). سهم آپاچی در طول سال از 43.6% به 38.9% و سهم Microsoft IIS از 8.6% به 8.3% کاهش یافت. در روسیه nginx استفاده می شود در 78.9٪ از سایت های پربازدید (یک سال پیش - 81٪).

قابل توجه ترین پیشرفت های اضافه شده در طول توسعه شاخه بالادستی 1.17.x:

  • بخشنامه اضافه شد حد_رقم_ خشک_ اجرا شودکه حالت اجرای آزمایشی را فعال می‌کند، که در آن هیچ محدودیتی در شدت پردازش درخواست اعمال نمی‌شود (بدون محدودیت نرخ)، اما همچنان تعداد درخواست‌هایی که بیش از محدودیت‌های موجود در حافظه مشترک است را در نظر می‌گیرد.
  • بخشنامه اضافه شد محدود کردن_پوشش_ خشک کردن، که ماژول ngx_http_limit_conn_module را به حالت اجرای آزمایشی تبدیل می کند، که در آن تعداد اتصالات محدود نیست، اما در نظر گرفته می شود.
  • بخشنامه اضافه شده "author_delay"، که به شما امکان می دهد با کد پاسخ 401 به درخواست های غیرمجاز تاخیر اضافه کنید تا شدت حدس زدن رمز عبور را کاهش داده و در برابر آن محافظت کنید. حملاتدستکاری اندازه‌گیری زمان اجرای عملیات (حمله زمان‌بندی) هنگام دسترسی به سیستم‌هایی که دسترسی به آنها محدود است. کلمه عبور, نتیجه یک استعلام فرعی یا J.W.T. (JSON Web Token)؛
  • پشتیبانی از متغیرها در دستورالعمل‌های "limit_rate" و "limit_rate_after" و همچنین در دستورالعمل‌های "proxy_upload_rate" و "proxy_download_rate" ماژول جریان.
  • در بخشنامه grpc_pass پشتیبانی اضافه شده برای استفاده از یک متغیر در پارامتری که یک آدرس را تعریف می کند. اگر آدرس به عنوان نام دامنه مشخص شده باشد، نام در میان گروه های توصیف شده از سرورها جستجو می شود، و اگر یافت نشد، با استفاده از یک حل کننده تعیین می شود.
  • متغیرهای جدید اضافه شد $proxy_protocol_server_addr и $proxy_protocol_server_port، که حاوی آدرس سرور و پورت به دست آمده از هدر پروتکل PROXY است.
  • در ماژول 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;
  • پشتیبانی برای جابجایی بلوک‌های با نام «location» با استفاده از روش $r->internal_redirect() ارائه‌شده توسط مفسر داخلی Perl اضافه شد. این روش اکنون شامل پردازش URI با کاراکترهای فرار شده است.
  • هنگام استفاده از دستورالعمل "upstream" در بلوک تنظیمات "upstream".مخلوط» برای سازماندهی توازن بار با اتصال کلاینت-سرور، اگر یک مقدار کلید خالی را مشخص کنید، حالت تعادل یکنواخت (دور-روبین) اکنون فعال می شود.
  • برای جلوگیری از خواندن از طریق اتصال سریع در طول زمان، پشتیبانی از تماس ioctl (FIONREAD) در صورت وجود اضافه شده است.

منبع: opennet.ru

اضافه کردن نظر