
Nginx เป็นเว็บเซิร์ฟเวอร์/พร็อกซีย้อนกลับและพร็อกซีที่มีน้ำหนักเบาประสิทธิภาพสูง
เพิ่งประกาศ การเปิดตัวเวอร์ชันใหม่ของ Nginx 1.26.0ซึ่งจัดเป็นเวอร์ชันเสถียรและนำการเปลี่ยนแปลงและการปรับปรุงทั้งหมดที่เกิดขึ้นระหว่างการพัฒนาเวอร์ชัน 1.25 ไปใช้
สำหรับผู้ที่ไม่ทราบเกี่ยวกับ Nginx คุณควรรู้ไว้ เป็นเว็บเซิร์ฟเวอร์/พร็อกซีย้อนกลับที่มีน้ำหนักเบา ประสิทธิภาพและพร็อกซีสำหรับโปรโตคอลอีเมล (IMAP/POP3) นั้น ใช้สถาปัตยกรรมแบบอะซิงโครนัสตามเหตุการณ์เพื่อจัดการคำขอพร้อมกันจำนวนมาก. ออกแบบมาเพื่อจัดการเนื้อหาแบบสแตติกและไดนามิก และสามารถใช้เพื่อแสดงเว็บเพจ สตรีมมีเดีย และคำขอ API
ข่าวหลักใน nginx 1.26
ใน Nginx 1.26.0 เวอร์ชันใหม่นี้ หนึ่งในการปรับปรุงที่โดดเด่นที่สุดระหว่างการพัฒนาสาขาหลักของ nginx 1.25.x คือ การสนับสนุนการทดลองสำหรับ HTTP/3 โดยใช้โมดูล ngx_http_v3 ซึ่งใช้ QUIC เป็นพาหนะสำหรับ HTTP/2 QUIC เป็นส่วนขยายของโปรโตคอล UDP ที่นำเสนอการเชื่อมต่อและวิธีการเข้ารหัสที่หลากหลายเทียบเท่ากับ TLS/SSL
การเปลี่ยนแปลงที่โดดเด่นอีกอย่างหนึ่งคือการแนะนำของ แยกคำสั่ง "http2" เพื่อเลือกเปิดใช้งานโปรโตคอล HTTP/2 บนเซิร์ฟเวอร์แต่ละเครื่อง ลบการสนับสนุนการพุชเซิร์ฟเวอร์สำหรับ HTTP/2 เพื่อเพิ่มประสิทธิภาพการทำงานของโปรโตคอล
นอกจากนี้ใน Nginx 1.26.0 ใช้มาตรการป้องกันต่อกิจกรรมไคลเอ็นต์ HTTP/2 ที่ผิดปกติและการโจมตี DoS ประเภท «รีเซ็ตอย่างรวดเร็ว«, การจำกัดจำนวนคำขอต่อการเชื่อมต่อและการจำกัดการสร้างเธรดใหม่
มีข้อสังเกตว่ามันถูกเพิ่มเข้ามาด้วย รองรับเซิร์ฟเวอร์เสมือนไปยังโมดูลสตรีมมิ่ง ช่วยให้เซิร์ฟเวอร์เสมือนได้รับการกำหนดค่าในบล็อก “เซิร์ฟเวอร์ {…}” ตลอดจนการแนะนำโมดูล ngx_stream_pass_module เพื่อส่งต่อการเชื่อมต่อโดยตรงไปยังตัวเชื่อมต่อการรับฟังใดๆ ที่เกี่ยวข้องกับโมดูล เช่น http, สตรีม และเมล สิ่งนี้ช่วยเพิ่มความสามารถในการส่งผ่านการเชื่อมต่อโฟลว์ไปยังซ็อกเก็ตการฟังโดยตรง และเพิ่มประสิทธิภาพในการจัดการการเชื่อมต่อโดยการลดค่าใช้จ่ายและเวลาแฝงที่เกี่ยวข้องกับการกำหนดเส้นทางการเชื่อมต่อเพิ่มเติม
ของ การเปลี่ยนแปลงอื่น ๆ ที่โดดเด่น ของเวอร์ชันใหม่นี้:
- ขณะนี้คำสั่ง Listener ของโมดูลสตรีมสนับสนุนพารามิเตอร์เพิ่มเติม เช่น "deferred", "accept_filter" และ "setfib"
- ใช้งานการสนับสนุนสำหรับการกำหนดขนาดบล็อกที่ใช้ในการถ่ายโอนข้อมูลระหว่างแคช CPU และหน่วยความจำบนสถาปัตยกรรมบางตัว
- การจัดการบัฟเฟอร์ที่ใช้ในการตรวจหาการเชื่อมต่อ HTTP/2 โดยอัตโนมัติได้รับการปรับปรุงอย่างมาก
- ปรับปรุงประสิทธิภาพได้สำเร็จเมื่อเรียกใช้การกำหนดค่าด้วยนโยบายตำแหน่งจำนวนมาก
- มีการรองรับการตรวจจับบรรทัดแคชหรือขนาดบล็อก สามารถใช้งานได้กับสถาปัตยกรรมบางประเภท และจำเป็นอย่างยิ่งสำหรับการถ่ายโอนข้อมูลระหว่างหน่วยความจำและแคช CPU
- คำสั่ง "ssl" ซึ่งก่อนหน้านี้มีป้ายกำกับว่า "ล้าสมัย" ได้ถูกยกเลิกแล้ว
- รองรับ Homebrew บน Apple Silicon
- การแก้ไขข้อบกพร่องและการปรับปรุงการคอมไพล์ข้าม Windows
- แก้ไขการปิดการเชื่อมต่อที่ไม่คาดคิดเมื่อใช้ 0-RTT ใน QUIC
สุดท้ายนี้ หากสนใจอยากทราบข้อมูลเพิ่มเติม สามารถเข้าไปดูรายละเอียดใน ลิงค์ต่อไปนี้
รับ nginx 1.26
สำหรับผู้ที่สนใจสามารถรับเวอร์ชันใหม่ได้ จะต้องดำเนินการดังต่อไปนี้ แล้วแต่กรณีของการแจกจ่าย
สำหรับ RHEL และอนุพันธ์ คุณต้องเพิ่มที่เก็บด้วยคำสั่งต่อไปนี้:
sudo nano /etc/yum.repos.d/nginx.repo
และเพิ่มสิ่งนี้ในตอนท้าย
[nginx] name=nginx repo baseurl=https://nginx.org/packages/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1
และเราติดตั้งด้วย:
dnf install nginx
ในขณะที่สำหรับ Ubuntu และอนุพันธ์ของมัน พวกเขาต้องพิมพ์สิ่งต่อไปนี้:
sudo nano etc/apt/sources.list.d/nginx.list
และเพิ่มสิ่งนี้ลงในไฟล์:
deb https://nginx.org/packages/ubuntu/ $(lsb_release -sc) nginx deb-src https://nginx.org/packages/ubuntu/ $(lsb_release -sc) nginx
และเราดำเนินการติดตั้งด้วย:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key sudo apt update sudo apt install nginx
ตอนนี้สำหรับกรณีของ Amazon Linux 2023พวกเขาควรพิมพ์:
sudo yum install yum-utils
เราเพิ่มสิ่งต่อไปนี้ใน /etc/yum.repos.d/nginx.repo โดยมีเนื้อหาต่อไปนี้:
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/amzn/2023/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true priority=9 [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/amzn/2023/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true priority=9
และเราดำเนินการติดตั้งด้วย:
sudo yum instalar nginx
สุดท้ายนี้ สำหรับผู้ที่ชื่นชอบการคอมไพล์แพ็คเกจ สามารถทำได้โดยใช้คำสั่งต่อไปนี้ (เมื่อดาวน์โหลดแล้วและอยู่ในไดเร็กทอรีโค้ด):
./configure make sudo make install