Cloudflare นำเสนอโมดูลเพื่อรองรับ HTTP / 3 ใน NGINX

Cloudflare

Cloudflare ได้เตรียมโมดูลเพื่อรองรับโปรโตคอล HTTP / 3 ใน NGINX. โมดูลเสร็จสิ้น ในรูปแบบของ snap บนไลบรารี quiche พัฒนาที่ Cloudflare โดยใช้โปรโตคอลการขนส่ง QUIC และ HTTP / 3 รหัสคีชเขียนด้วยสนิมแต่โมดูลสำหรับ NGINX เขียนด้วย C และเข้าถึงไลบรารีผ่านลิงก์แบบไดนามิก เวลาทำการเปิดให้บริการภายใต้ใบอนุญาต BSD

จากซอฟต์แวร์ไคลเอ็นต์ เพิ่มการรองรับ HTTP / 3 ในรุ่นทดลองของ Chrome Canary แล้ว และยูทิลิตี้ curl ในฝั่งเซิร์ฟเวอร์นั้นจำเป็นต้องใช้การทดสอบแบบแยกส่วนที่มีความสามารถ จำกัด ความสามารถในการจัดการ HTTP / 3 ใน nginx จะทำให้การปรับใช้เซิร์ฟเวอร์ง่ายขึ้นอย่างมากด้วยการรองรับ HTTP / 3 และจะทำให้การดำเนินการทดสอบของโปรโตคอลใหม่สามารถเข้าถึงได้มากขึ้น

HTTP / 3 กำหนดมาตรฐานการใช้โปรโตคอล QUIC เป็นการขนส่งสำหรับ HTTP / 2 โปรโตคอล QUIC ได้รับการพัฒนาโดย Google เพื่อเป็นทางเลือกแทน TCP + TLS สำหรับเว็บดังนั้น มุ่งมั่นที่จะแก้ปัญหาเกี่ยวกับการติดตั้งและการประสานงานใน TCP เป็นเวลานาน และความล่าช้าในการกำจัดการสูญหายของแพ็คเก็ตระหว่างการส่งข้อมูล QUIC เป็นปลั๊กอินของโปรโตคอล UDP ที่รองรับการเชื่อมต่อแบบมัลติเพล็กซ์หลายการเชื่อมต่อและมีวิธีการเข้ารหัสที่เทียบเท่ากับ TLS / SSL

ในลักษณะสำคัญของ QUIC ที่โดดเด่น:

  • ความปลอดภัยสูงคล้ายกับ TLS (อันที่จริง QUIC ให้ความสามารถในการใช้ TLS ผ่าน UDP)
  • การควบคุมความสมบูรณ์ของการไหลที่ป้องกันการสูญหายของแพ็คเก็ต
  • ความสามารถในการสร้างการเชื่อมต่อทันที (0-RTT ในกรณีประมาณ 75% สามารถถ่ายโอนข้อมูลได้ทันทีหลังจากส่งแพ็คเก็ตการตั้งค่าการเชื่อมต่อ) และตรวจสอบให้แน่ใจว่ามีความล่าช้าน้อยที่สุดระหว่างการส่งคำขอและการรับการตอบกลับ (RTT, Round Trip Time) .
  • ไม่ใช้หมายเลขลำดับเดียวกันเมื่อส่งแพ็กเก็ตใหม่ซึ่งจะหลีกเลี่ยงความคลุมเครือในการกำหนดแพ็กเก็ตที่ได้รับและกำจัดการหมดเวลา
  • การสูญเสียแพ็คเก็ตมีผลต่อการส่งเฉพาะสตรีมที่เชื่อมโยงกับแพ็กเก็ตและไม่หยุดการส่งข้อมูลในสตรีมที่ส่งแบบขนานผ่านการเชื่อมต่อปัจจุบัน
  • เครื่องมือแก้ไขข้อผิดพลาดที่ช่วยลดความล่าช้าเนื่องจากการส่งแพ็กเก็ตที่สูญหายอีกครั้ง การใช้รหัสแก้ไขข้อผิดพลาดระดับแพ็คเก็ตพิเศษเพื่อลดสถานการณ์ที่ต้องส่งซ้ำข้อมูลแพ็กเก็ตที่สูญหาย
  • ขอบเขตบล็อกการเข้ารหัสจะสอดคล้องกับขอบเขตแพ็คเก็ต QUIC ซึ่งช่วยลดผลกระทบของการสูญเสียแพ็กเก็ตในการถอดรหัสเนื้อหาของแพ็กเก็ตที่ตามมา
  • ไม่มีปัญหากับการบล็อกคิว TCP
  • รองรับตัวระบุการเชื่อมต่อซึ่งช่วยลดเวลาในการสร้างการเชื่อมต่อใหม่สำหรับไคลเอนต์มือถือ
  • ความสามารถในการเชื่อมต่อกลไกขั้นสูงเพื่อควบคุมการเชื่อมต่อเกินพิกัด
  • ใช้เทคนิคการทำนายแบนด์วิดท์ในแต่ละทิศทางเพื่อให้แน่ใจว่ามีความเข้มในการส่งต่อแพ็กเก็ตที่เหมาะสมที่สุดป้องกันไม่ให้เข้าสู่สภาวะความแออัดซึ่งสังเกตเห็นการสูญเสียแพ็กเก็ต
  • ประสิทธิภาพและประสิทธิภาพที่โดดเด่นเพิ่มขึ้นผ่าน TCP สำหรับบริการวิดีโอเช่น YouTube QUIC พบว่าการดำเนินการบัฟเฟอร์ซ้ำลดลง 30% เมื่อดูวิดีโอ

จะใช้โมดูลเพื่อรองรับ HTTP / 3 ใน NGINX ได้อย่างไร?

สำหรับผู้ที่สนใจสามารถติดตั้งโมดูลนี้บนเซิร์ฟเวอร์ได้ สามารถทำได้โดยทำตามคำแนะนำที่เราแบ่งปันด้านล่าง

เพื่อรวบรวมมัน พวกเขาต้องดาวน์โหลดแพทช์สำหรับ nginx 1.16 และรหัสไลบรารี quiche

curl -O https://nginx.org/download/nginx-1.16.1.tar.gz

tar xzvf nginx-1.16.1.tar.gz

git clone --recursive https://github.com/cloudflare/quiche

cd nginx-1.16.1

patch -p01 < ../quiche/extras/nginx/nginx-1.16.patch

และเรารวบรวม NGINX โดยเปิดใช้งานการสนับสนุน HTTP / 3:

 ./configure                                 \

--prefix=$PWD                           \

--with-http_ssl_module                  \

--with-http_v2_module                   \

--with-http_v3_module                   \

--with-openssl=../quiche/deps/boringssl \

--with-quiche=../quiche

make

ในระหว่างการคอมไพล์การรองรับ TLS จะต้องเป็นไปตามไลบรารี BoringSSL ("–with-openssl = .. / quiche / deps / boringssl") ยังไม่รองรับการใช้ OpenSSL

ในการยอมรับการเชื่อมต่อในการกำหนดค่าพวกเขาจะต้องเพิ่มคำสั่ง Listener ด้วยแฟล็ก "quic"


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา