สาขาหลักของ nginx 1.25.5 ได้รับการเผยแพร่แล้ว ซึ่งการพัฒนาคุณสมบัติใหม่ยังคงดำเนินต่อไป สาขาเสถียรที่บำรุงรักษาแบบขนาน 1.24.x มีเพียงการเปลี่ยนแปลงที่เกี่ยวข้องกับการกำจัดจุดบกพร่องและช่องโหว่ร้ายแรงเท่านั้น ในอนาคต ตามสาขาหลัก 1.25.x จะมีการสร้างสาขาที่มั่นคง 1.26 รหัสโครงการเขียนด้วยภาษา C และเผยแพร่ภายใต้ใบอนุญาต BSD
ท่ามกลางการเปลี่ยนแปลง:
- ได้เพิ่มการรองรับให้กับโมดูลสตรีมแล้ว เซิร์ฟเวอร์เสมือนซึ่งการกำหนดค่าจะถูกกำหนดไว้ในบล็อก “server { … }” โดยใช้คำสั่ง server_name server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
- มีการเพิ่มโมดูลใหม่ ngx_stream_pass_module ซึ่งออกแบบมาเพื่อส่งต่อการเชื่อมต่อที่ได้รับโดยตรงไปยังซ็อกเก็ตการฟังใดๆ ที่เกี่ยวข้องกับโมดูล เช่น http, สตรีม และเมล สตรีม { เซิร์ฟเวอร์ { ฟัง 12345 ssl; ssl_certificate โดเมน.crt; ssl_certificate_key โดเมน.คีย์; ผ่าน 127.0.0.1:8000; -
- คำสั่ง Listen ของโมดูลสตรีมใช้การสนับสนุนสำหรับพารามิเตอร์ "deferred" (เปิดใช้งานการยอมรับแบบเลื่อนออกไป), "accept_filter" (ตัวกรองการเชื่อมต่อขาเข้าที่ใช้ก่อนที่จะเรียกใช้ฟังก์ชัน Accept) และพารามิเตอร์ "setfib" (การตั้งค่าตารางเส้นทาง)
- สำหรับสถาปัตยกรรมบางตัว มีการรองรับเพื่อกำหนดขนาดบล็อก (บรรทัดแคช) ที่ใช้ในการถ่ายโอนข้อมูลระหว่างแคช CPU และหน่วยความจำ
- บนระบบ Apple Silicon มีการเพิ่มการรองรับตัวจัดการแพ็คเกจ Homebrew
- ปัญหาการคอมไพล์ข้ามแพลตฟอร์มได้รับการแก้ไขแล้วสำหรับ Windows.
- แก้ไขข้อบกพร่องที่ทำให้การเชื่อมต่อถูกปิดเมื่อใช้โหมด 0-RTT ในโปรโตคอล QUIC
นอกจากนี้เรายังสามารถสังเกตการเผยแพร่โครงการ FreeNginx 1.26.0 เวอร์ชันเสถียรซึ่งพัฒนาทางแยกของ Nginx ทางแยกนี้ได้รับการพัฒนาโดย Maxim Dunin หนึ่งในนักพัฒนา Nginx คนสำคัญ FreeNginx อยู่ในตำแหน่งที่เป็นโครงการที่ไม่แสวงหาผลกำไรที่ให้การพัฒนาฐานโค้ด Nginx โดยปราศจากการแทรกแซงจากองค์กร รุ่น 1.26.0 ถูกทำเครื่องหมายว่าเป็นรุ่นเสถียร โดยผสมผสานการเปลี่ยนแปลงและการแก้ไขจากรุ่นสาขาหลักของ Nginx 1.25 เหนือสิ่งอื่นใด FreeNginx 1.26.0 มีการรองรับการทดลองสำหรับโปรโตคอล HTTP/3 การปรับปรุงเพื่อตอบโต้การโจมตี DoS และการแก้ไขที่เกี่ยวข้องกับการประมวลผล I/O แบบอะซิงโครนัส
ในขณะเดียวกัน njs 0.8.4 ซึ่งเป็นตัวแปลภาษา JavaScript สำหรับ เว็บเซิร์ฟเวอร์ nginx.com ตัวแปลภาษา njs ใช้มาตรฐาน ECMAScript และช่วยให้คุณขยายความสามารถในการประมวลผลคำขอของ nginx ด้วยสคริปต์การกำหนดค่า สคริปต์สามารถใช้ในไฟล์การกำหนดค่าเพื่อกำหนดตรรกะการประมวลผลคำขอขั้นสูง สร้างการกำหนดค่า สร้างการตอบสนองแบบไดนามิก แก้ไขคำขอ/การตอบสนอง หรือสร้าง stub อย่างรวดเร็วเพื่อแก้ไขปัญหาในเว็บแอปพลิเคชัน ในเวอร์ชันใหม่นี้: เพิ่มการสนับสนุนสำหรับเอ็นจิ้น JavaScript QuickJS ใน CLI เพิ่มความสามารถในการตั้งค่าส่วนหัว Server และตรวจสอบตัวแปรที่ซ้ำกันที่ตั้งค่าผ่าน js_set แล้ว
ที่มา: opennet.ru
