ในวงการเทคโนโลยีเว็บเซิร์ฟเวอร์ที่มีการแข่งขันสูง ผู้ท้าชิงรายใหม่ได้ปรากฏตัวขึ้น Ferron เว็บเซิร์ฟเวอร์ที่เขียนด้วยภาษา Rust กำลังสร้างกระแสในแวดวงนักพัฒนาด้วยคุณสมบัติด้านความปลอดภัยของหน่วยความจำและประสิทธิภาพที่น่าประทับใจ ในขณะที่ความต้องการโครงสร้างพื้นฐานเว็บยังคงพัฒนาอย่างต่อเนื่อง ชุมชนนักพัฒนาได้ประเมินว่าผู้มาใหม่รายนี้เทียบชั้นกับโซลูชันที่มีชื่อเสียงอย่าง Caddy และ Nginx ได้อย่างไร
ประสิทธิภาพการใช้หน่วยความจำโดดเด่นในการทดสอบเบื้องต้น
การทดสอบประสิทธิภาพในช่วงแรกที่ผู้สร้างโครงการแบ่งปันแสดงให้เห็นถึงประสิทธิภาพการใช้หน่วยความจำที่น่าประทับใจเมื่อเทียบกับคู่แข่งบางราย ในการทดสอบที่เปิดใช้งานทั้ง HTTPS และ HTTP/2 ในขณะที่ให้บริการหน้าเว็บเริ่มต้นของ Apache httpd นั้น Ferron รายงานว่ามีประสิทธิภาพเหนือกว่า Caddy 2.9.1 ในการใช้หน่วยความจำ ตามข้อมูลของนักพัฒนา Caddy ใช้หน่วยความจำมากจนกระทั่งที่ 12,600 คำขอต่อวินาที ระบบที่มี RAM 16 GB หมดหน่วยความจำ ในขณะที่ Ferron ไม่ได้ใช้หน่วยความจำมากเท่า และการทดสอบประสิทธิภาพสำเร็จได้ถึง 20,000 คำขอต่อวินาที ประสิทธิภาพนี้อาจทำให้ Ferron มีความน่าสนใจเป็นพิเศษสำหรับสภาพแวดล้อมที่มีทรัพยากรจำกัด แม้ว่าสมาชิกบางคนในชุมชนแนะนำว่าปัญหาหน่วยความจำอาจเกี่ยวข้องกับการเก็บขยะของ Go มากกว่าการออกแบบของ Caddy
คุณสมบัติด้านความปลอดภัยที่สร้างบนพื้นฐานของ Rust
Ferron ใช้ประโยชน์จากการรับประกันความปลอดภัยของหน่วยความจำของ Rust เป็นจุดขายหลัก เว็บเซิร์ฟเวอร์นี้มีคุณสมบัติความปลอดภัยในตัว เช่น การป้องกันการโจมตีแบบ Slowloris ผ่านการตั้งค่าหมดเวลาของส่วนหัวคำขอที่สามารถกำหนดค่าได้ เมื่อถูกถามเฉพาะเจาะจงเกี่ยวกับช่องโหว่นี้ นักพัฒนาอธิบายว่า Hyper (ไลบรารี HTTP ที่ใช้โดย Ferron) มีการตั้งค่าหมดเวลาของส่วนหัวคำขอเป็น 30 วินาทีโดยค่าเริ่มต้นหากมีการตั้งค่าตัวจับเวลา Ferron ตั้งค่าตัวจับเวลาสำหรับ Hyper เพื่อให้การหมดเวลาของส่วนหัวคำขอทำงานได้ จึงบรรเทาการโจมตีแบบ Slowloris ความใส่ใจในหลักการพื้นฐานด้านความปลอดภัยนี้สะท้อนให้เห็นถึงการเน้นย้ำที่เพิ่มขึ้นในการสร้างโครงสร้างพื้นฐานด้วยหลักการความปลอดภัยมาก่อน
คุณสมบัติหลักของ Ferron
- เขียนด้วยภาษา Rust โดยเน้นความปลอดภัยด้านหน่วยความจำ
- ประสิทธิภาพสูงโดยใช้ความสามารถแบบ async ของ Rust
- รองรับ HTTP/2 และ OCSP stapling โดยเป็นค่าเริ่มต้นสำหรับ HTTPS
- มีการป้องกันการโจมตีแบบ Slowloris
- สถาปัตยกรรมแบบโมดูลาร์เพื่อความสามารถในการขยาย
- ความสามารถในการทำ reverse proxy สำหรับ WebSocket
ส่วนประกอบ
ferron
: เซิร์ฟเวอร์เว็บหลักferron-passwd
: เครื่องมือสำหรับสร้างรายการผู้ใช้พร้อมรหัสผ่านที่ถูกแฮช
การเปรียบเทียบกับโซลูชันที่มีชื่อเสียง
การสนทนาในชุมชนแสดงให้เห็นถึงความสนใจอย่างมากในการเปรียบเทียบ Ferron กับเว็บเซิร์ฟเวอร์ที่มีชื่อเสียงอย่าง Nginx และ Caddy ผู้ใช้บางคนมองว่า Ferron เป็นตัวแทนที่ดีของ Caddy โดยมีผู้แสดงความคิดเห็นคนหนึ่งกล่าวว่า:
นี่เป็นตัวแทน Caddy ที่ดีมาก รูปแบบการกำหนดค่าที่ Caddy ใช้บางครั้งรู้สึกว่าถูกทำให้ง่ายเกินไปจนการกำหนดค่าที่ซับซ้อนอ่านยาก สัญชาตญาณของฉันบอกว่านี่อาจขยายได้ดีกว่าโดยไม่ต้องใช้คำพูดมากขึ้น
อย่างไรก็ตาม คนอื่น ๆ ชี้ให้เห็นว่าการเปรียบเทียบโครงการใหม่กับ Nginx ซึ่งมีประวัติการพัฒนา 21 ปี อาจเร็วเกินไป นักพัฒนายอมรับว่าการเปรียบเทียบประสิทธิภาพไม่รวม Nginx อย่างเห็นได้ชัด ซึ่งอาจเป็นเพราะเหตุผลทางการตลาดหรืออคติในการเปรียบเทียบ
ชุดคุณสมบัติและความพร้อมของโครงการ
Ferron ประกอบด้วยหลายส่วนประกอบ รวมถึงเว็บเซิร์ฟเวอร์หลักและเครื่องมือสร้างรหัสผ่าน มันรองรับ HTTP/2 และ OCSP stapling โดยค่าเริ่มต้นเมื่อเปิดใช้งาน HTTPS แม้ว่ายังไม่รองรับโปรโตคอลเฉพาะทางเช่น DTLS สำหรับ WebRTC (ซึ่งแม้แต่ Nginx ก็รองรับเฉพาะผ่านแพตช์) แต่สามารถทำหน้าที่เป็น WebSocket reverse proxy สำหรับการส่งสัญญาณในแอปพลิเคชัน WebRTC ได้
โครงการนี้ยังอยู่ในช่วงเริ่มต้น โดยที่พบว่าคลังเก็บโค้ดยังอยู่ระหว่างการพัฒนา คำแนะนำในการติดตั้งกำลังรอการเปิดตัวครั้งแรก แม้ว่านักพัฒนาที่สนใจสามารถสร้างจากซอร์สโค้ดโดยใช้ Cargo ซึ่งเป็นตัวจัดการแพ็คเกจของ Rust
ในขณะที่เทคโนโลยีเว็บเซิร์ฟเวอร์ยังคงพัฒนาอย่างต่อเนื่อง Ferron แสดงถึงแนวโน้มที่กำลังดำเนินอยู่ในการสร้างโครงสร้างพื้นฐานที่สำคัญใหม่ในภาษาที่ปลอดภัยด้านหน่วยความจำ แม้ว่าจะเร็วเกินไปที่จะคาดการณ์ว่ามันจะท้าทายความเป็นผู้นำของโซลูชันที่มีชื่อเสียงหรือไม่ แต่การตอบสนองของชุมชนในช่วงแรกแสดงให้เห็นว่ามีความสนใจอย่างแท้จริงในทางเลือกที่ให้ความสำคัญกับความปลอดภัยของหน่วยความจำและประสิทธิภาพ
อ้างอิง: ferronweb/ferron