การเปิดตัว nginx 1.17.9 และ njs 0.3.9

ก่อตัวขึ้น การปล่อยต้นน้ำ nginx 1.17.9ซึ่งภายในการพัฒนาความสามารถใหม่ยังคงดำเนินต่อไป (รองรับความเสถียรแบบขนาน สาขา 1.16 มีเพียงการเปลี่ยนแปลงที่เกี่ยวข้องกับการกำจัดข้อผิดพลาดร้ายแรงและช่องโหว่เท่านั้น)

หลัก การเปลี่ยนแปลง:

  • ห้ามมิให้ระบุบรรทัด "โฮสต์" หลายบรรทัด
    ส่วนหัวของคำขอ;

  • แก้ไขข้อผิดพลาดที่ nginx ละเว้นบรรทัดเพิ่มเติม
    "Transfer-Encoding" ในส่วนหัวของคำขอ

  • มีการแก้ไขเพื่อป้องกันการรั่วไหลของซ็อกเก็ตเมื่อใช้โปรโตคอล HTTP/2
  • แก้ไขข้อผิดพลาดในการแบ่งส่วนในกระบวนการของผู้ปฏิบัติงานที่เกิดขึ้นเมื่อใช้การเย็บเล่ม OCSP
  • มีการแก้ไขโมดูล ngx_http_mp4_module แล้ว
  • แก้ไขปัญหาในกรณีที่เมื่อเปลี่ยนเส้นทางข้อผิดพลาดด้วยรหัส 494 โดยใช้คำสั่ง 'error_page' อาจส่งคืนการตอบกลับด้วยรหัส 494 แทนที่จะเป็น 400
  • แก้ไขการรั่วไหลของซ็อกเก็ตเมื่อใช้แบบสอบถามย่อยในโมดูล njs และคำสั่ง aio

นอกจากนี้ยังสามารถสังเกตได้ ปัญหา njs 0.3.9ซึ่งเป็นล่าม JavaScript สำหรับเว็บเซิร์ฟเวอร์ nginx ล่าม njs ใช้มาตรฐาน ECMAScript และช่วยให้คุณสามารถขยายความสามารถของ nginx ในการประมวลผลคำขอโดยใช้สคริปต์ในการกำหนดค่า สามารถใช้สคริปต์ในไฟล์การกำหนดค่าเพื่อกำหนดตรรกะขั้นสูงสำหรับการประมวลผลคำขอ การสร้างการกำหนดค่า การสร้างการตอบสนองแบบไดนามิก การแก้ไขคำขอ/การตอบสนอง หรือการสร้าง stub อย่างรวดเร็วเพื่อแก้ไขปัญหาในเว็บแอปพลิเคชัน

ในรีลีสใหม่ โมดูล njs ได้เพิ่มการรองรับสำหรับโหมดคำขอที่แยกออกใน r.subrequest() การตอบกลับแบบสอบถามย่อยที่แยกออกจะถูกละเว้น แตกต่างจากแบบสอบถามย่อยทั่วไป แบบสอบถามย่อยที่แยกออกมาสามารถสร้างขึ้นได้ภายในตัวจัดการตัวแปร อีกด้วย:

  • เพิ่มสัญญา API สำหรับโมดูล "fs"
  • เพิ่มฟังก์ชัน access(), symlink(), unlink() ลงในโมดูล “fs” แล้ว
    realpath() และที่คล้ายกัน;

  • มีการใช้อาร์เรย์สามัญซึ่งมีประสิทธิภาพในแง่ของการใช้หน่วยความจำ
  • มีการปรับปรุง lexer;
  • มีการแก้ไขการแมปฟังก์ชันดั้งเดิมใน backtrace
    ร่องรอย;

  • แก้ไขการโทรกลับในโมดูล "fs"
  • มีการแก้ไข Object.getOwnPropertySymbols();
  • แก้ไขบัฟเฟอร์ล้นฮีปใน njs_json_append_string();
  • แก้ไข encodeURI() และ decodeURI() เพื่อให้สอดคล้องกับข้อกำหนด
  • ทำการแก้ไข Number.prototype.toPrecision();
  • แก้ไขการจัดการอาร์กิวเมนต์ช่องว่างใน JSON.stringify();
  • ทำการแก้ไข JSON.stringify() ด้วยวัตถุ Number() และ String()
  • ให้การหลีกอักขระ Unicode ใน JSON.stringify() ตาม
    มีข้อกำหนด;

  • มีการแก้ไขการนำเข้าโมดูลที่ไม่ใช่เจ้าของภาษา
  • ทำการแก้ไข njs.dump() ด้วยอินสแตนซ์ Date() ในคอนเทนเนอร์

ที่มา: opennet.ru

เพิ่มความคิดเห็น