หลังจากหนึ่งปีของการพัฒนา
การปรับปรุงที่โดดเด่นที่สุดที่เพิ่มเข้ามาในระหว่างการพัฒนาสาขาอัปสตรีม 1.15.x:
- เพิ่มความสามารถในการใช้ตัวแปรใน 'คำสั่ง'
ssl_certificate 'หรือ'ssl_certificate_key ' ซึ่งสามารถใช้เพื่อโหลดใบรับรองแบบไดนามิก - เพิ่มความสามารถในการโหลดใบรับรอง SSL และคีย์ลับจากตัวแปรโดยไม่ต้องใช้ไฟล์ระดับกลาง
- ในบล็อก"
ต้นน้ำลำธาร » มีการนำคำสั่งใหม่ไปใช้แล้ว «สุ่ม “ ด้วยความช่วยเหลือซึ่งคุณสามารถจัดระเบียบโหลดบาลานซ์ด้วยการเลือกเซิร์ฟเวอร์แบบสุ่มเพื่อส่งต่อการเชื่อมต่อ - ในโมดูล
ngx_stream_ssl_preread ตัวแปรที่นำมาใช้$ssl_preread_protocol ,
ซึ่งระบุเวอร์ชันสูงสุดของโปรโตคอล SSL/TLS ที่ไคลเอนต์รองรับ ตัวแปรอนุญาตสร้างการกำหนดค่า สำหรับการเข้าถึงโดยใช้โปรโตคอลต่างๆ ที่มีและไม่มี SSL ผ่านพอร์ตเครือข่ายเดียวเมื่อรับส่งข้อมูลโดยใช้ http และโมดูลสตรีม ตัวอย่างเช่น หากต้องการจัดระเบียบการเข้าถึงผ่าน SSH และ HTTPS ผ่านพอร์ตเดียว พอร์ต 443 สามารถส่งต่อเป็นค่าเริ่มต้นไปยัง SSH ได้ แต่หากมีการกำหนดเวอร์ชัน SSL ให้ส่งต่อไปยัง HTTPS - มีการเพิ่มตัวแปรใหม่ให้กับโมดูลอัปสตรีม "
$upstream_bytes_sent " ซึ่งแสดงจำนวนไบต์ที่ถ่ายโอนไปยังเซิร์ฟเวอร์กลุ่ม - ไปยังโมดูล
กระแส ภายในเซสชันเดียว ความสามารถในการประมวลผลดาตาแกรม UDP ขาเข้าหลายรายการจากไคลเอนต์ได้ถูกเพิ่มเข้ามา - คำสั่ง "
proxy_requests " ระบุจำนวนดาตาแกรมที่ได้รับจากไคลเอนต์ เมื่อถึงจุดเชื่อมโยงระหว่างไคลเอนต์และเซสชัน UDP ที่มีอยู่จะถูกลบออก หลังจากได้รับดาตาแกรมตามจำนวนที่ระบุแล้ว ดาตาแกรมถัดไปที่ได้รับจากไคลเอนต์เดียวกันจะเริ่มต้นเซสชันใหม่ - ขณะนี้ Listen Directive มีความสามารถในการระบุช่วงพอร์ตแล้ว
- เพิ่มคำสั่ง "
ssl_early_data » เพื่อเปิดใช้งานโหมด0-RTT เมื่อใช้ TLSv1.3 ซึ่งช่วยให้คุณสามารถบันทึกพารามิเตอร์การเชื่อมต่อ TLS ที่เจรจาไว้ก่อนหน้านี้ และลดจำนวน RTT เหลือ 2 เมื่อกลับมาเชื่อมต่อที่สร้างไว้ก่อนหน้านี้อีกครั้ง - มีการเพิ่มคำสั่งใหม่เพื่อกำหนดค่า Keepalive สำหรับการเชื่อมต่อขาออก (เปิดใช้งานหรือปิดใช้งานตัวเลือก SO_KEEPALIVE สำหรับซ็อกเก็ต):
- «
proxy_socket_keepalive " - กำหนดค่าลักษณะการทำงาน "TCP Keepalive" สำหรับการเชื่อมต่อขาออกไปยังพร็อกซีเซิร์ฟเวอร์ - «
fastcgi_socket_keepalive " - กำหนดค่าลักษณะการทำงาน "TCP Keepalive" สำหรับการเชื่อมต่อขาออกไปยังเซิร์ฟเวอร์ FastCGI - «
grpc_socket_keepalive " - กำหนดค่าลักษณะการทำงาน "TCP Keepalive" สำหรับการเชื่อมต่อขาออกไปยังเซิร์ฟเวอร์ gRPC - «
memcached_socket_keepalive " - กำหนดค่าลักษณะการทำงาน "TCP Keepalive" สำหรับการเชื่อมต่อขาออกไปยังเซิร์ฟเวอร์ Memcached - «
scgi_socket_keepalive " - กำหนดค่าลักษณะการทำงาน "TCP Keepalive" สำหรับการเชื่อมต่อขาออกไปยังเซิร์ฟเวอร์ SCGI - «
uwsgi_socket_keepalive " - กำหนดค่าลักษณะการทำงาน "TCP Keepalive" สำหรับการเชื่อมต่อขาออกไปยังเซิร์ฟเวอร์ uwsgi
- «
- ในคำสั่ง "
Limit_req" เพิ่มพารามิเตอร์ใหม่ "ล่าช้า" ซึ่งกำหนดขีดจำกัดหลังจากที่คำขอซ้ำซ้อนล่าช้า - มีการเพิ่มคำสั่งใหม่ "keepalive_timeout" และ "keepalive_requests" ในบล็อก "upstream" เพื่อกำหนดขีดจำกัดสำหรับ Keepalive
- คำสั่ง "ssl" เลิกใช้แล้ว และแทนที่ด้วยพารามิเตอร์ "ssl" ในคำสั่ง "listen" ขณะนี้ตรวจพบใบรับรอง SSL ที่หายไปในขั้นตอนการทดสอบการกำหนดค่าเมื่อใช้คำสั่ง "listen" กับพารามิเตอร์ "ssl" ในการตั้งค่า
- เมื่อใช้คำสั่ง reset_timedout_connection การเชื่อมต่อจะถูกปิดด้วยรหัส 444 เมื่อหมดเวลา
- ข้อผิดพลาด SSL "คำขอ http", "คำขอพร็อกซี https", "โปรโตคอลที่ไม่รองรับ" และ "เวอร์ชันต่ำเกินไป" จะแสดงในบันทึกด้วยระดับ "ข้อมูล" แทนที่จะเป็น "คริติคอล";
- เพิ่มการรองรับวิธีการโพลบนระบบ Windows เมื่อใช้ Windows Vista และใหม่กว่า
- ความเป็นไปได้ของการใช้
TLSv1.3 เมื่อสร้างด้วยไลบรารี BoringSSL ไม่ใช่แค่ OpenSSL
ที่มา: opennet.ru