שחרור של nginx 1.19.7, njs 0.5.1 ו-NGINX Unit 1.22.0

הענף הראשי של nginx 1.19.7 שוחרר, שבתוכו נמשך הפיתוח של תכונות חדשות (בסניף היציב הנתמך המקביל 1.18, מתבצעים רק שינויים הקשורים לביטול שגיאות ופגיעויות חמורות).

שינויים עיקריים:

  • כאשר תהליך עובד אוזל מהחיבורים הפנויים, nginx סוגר כעת לא רק חיבורי Keepalive, אלא גם חיבורים שממתינים לסגירת השקע ("סגירה מתמשכת").
  • קוד עיבוד החיבור ב-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".

במקביל, njs 0.5.1, מפרש JavaScript עבור שרת אינטרנט nginx. מפרש njs מיישם תקני ECMAScript ומאפשר לך להרחיב את יכולות עיבוד הבקשות של nginx באמצעות סקריפטים של תצורה. ניתן להשתמש בסקריפטים בקובץ התצורה כדי להגדיר לוגיקת עיבוד בקשות מתקדמת, ליצור תצורות, ליצור תגובות באופן דינמי, לשנות בקשות/תגובות, או ליצור במהירות קבצי stub כדי לפתור בעיות ביישומי אינטרנט.

הגרסה החדשה מוסיפה את ההנחיה "js_header_filter", המאפשרת לך להגדיר פונקציית JavaScript לסינון ושינוי כותרות תגובות שרירותיות: js_import foo.js; מיקום / { js_header_filter foo.filter; proxy_pass http://127.0.0.1:8081/; } foo.js: function filter(r) { var cookies = r.headersOut['Set-Cookie']; var len = r.args.len ? Number(r.args.len) : 0; r.headersOut['Set-Cookie'] = cookies.filter(v=>v.length > len); } ייצוא ברירת מחדל {מסנן};

נוספה גם שיטת ngx.fetch(), המיישמת את ה-Fetch API, המספק פונקציונליות של לקוח HTTP. השיטה תומכת בעיבוד של אפשרויות גוף, כותרות, buffer_size ו-max_response_body_size. אובייקט ה-Response המוחזר תומך ב-arrayBuffer(), bodyUsed, json(), headers, ok, redirect, status, statusText, text(), type ו-url, ואובייקט Header תומך ב-get(), getAll() ו- has() שיטות . function fetch(r) { ngx.fetch('http://nginx.org/') .then(reply => reply.text()) .then(body => r.return(200, body)) .catch (e => r.return(501, e.message)); }

ניתן גם לסמן את הפרסום שרת NGINX Unit 1.22, פתרון להפעלת יישומי אינטרנט שנכתבו בשפות תכנות שונות (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ו-Java). יחידת NGINX יכולה להריץ בו זמנית מספר יישומים שנכתבו בשפות שונות, וניתן לשנות את פרמטרי ההפעלה שלהם באופן דינמי ללא צורך בעריכת קבצי תצורה או הפעלה מחדש. הקוד כתוב בשפת C ומורשה תחת רישיון Apache 2.0.

הגרסה החדשה של יחידת NGINX התמקדה בשיפור היציבות, הרחבת יכולות הבדיקה ותיקון באגים. Linux המשתמש והקבוצה שתחתיהם פועלת יחידת NGINX בחבילות שונו. במקום nobody:nobody, תהליכים פועלים כעת תחת משתמש נפרד בשם unit בקבוצת unit. תאימות עם ממשק ה-Stream API עבור אובייקטים של ServerRequest ו-ServerResponse מהמודול Node.js הובטחה. כעת ניתן לציין מספר ספריות באפשרות "path" עבור יישומי Python.

מקור: OpenNet.ru

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster