เปิดใช้งาน HTTP / 2 ใน Nginx บน Ubuntu 16.04

HTTP / 2เป็นเวอร์ชันใหม่ของโปรโตคอล HTTP / 1.1 ที่ล้าสมัยซึ่งเป็นวิธีมาตรฐานในปี 1999 มีการเปลี่ยนแปลงมากมายบนเว็บตั้งแต่นั้นมา แอปพลิเคชันของเรามีความซับซ้อนมากกว่าที่เคยเป็นมาดังนั้นเราจึงจำเป็นต้องเปลี่ยนแปลงโปรโตคอลการขนส่งพื้นฐาน สิ่งที่สำคัญที่สุดเกี่ยวกับ HTTP / 2คือมันจะทำให้เว็บเพจของคุณเร็วขึ้นสำหรับผู้ใช้ปลายทาง

โดยย่อHTTP / 2เพิ่ม5คุณสมบัติหลัก:

  • การเชื่อมต่อเดี่ยวและต่อเนื่อง
  • Multiplexing
  • การบีบอัดส่วนหัว
  • การจัดลำดับความสำคัญของทรัพยากร
  • ยึดเลเยอร์การขนส่ง (ใช้ได้กับเบราว์เซอร์เท่านั้น)

อธิบายคุณสมบัติทั้งหมดเหล่านี้อยู่นอกขอบเขตของการกวดวิชานี้ แต่ถ้าคุณต้องการที่จะขุดลึกลงไปในหัวข้อนี้ผมสามารถแนะนำตัดตอนมาจากเบราว์เซอร์ที่มีประสิทธิภาพสูงหนังสือเครือข่าย - HTTP / 2 ตัดตอน

ในคู่มือนี้เราจะติดตั้ง Nginx เวอร์ชันเสถียรล่าสุดบน Ubuntu 16.04 (Xenial) สร้างใบรับรอง SSL ที่ลงชื่อด้วยตนเองเปิดใช้งานโปรโตคอล HTTP / 2ใน Nginx และติดตั้งเบราว์เซอร์elinksที่ทำงานกับข้อความเพื่อทำหน้าที่เป็นไคลเอนต์ HTTP

ติดตั้ง Nginx

ในการติดตั้ง Nginx เวอร์ชันเสถียรล่าสุดเราจำเป็นต้องใช้คำสั่งบางอย่าง:

  1. เราจำเป็นต้องดาวน์โหลดคีย์ PGP สาธารณะ Nginx ที่ใช้สำหรับการลงนามแพ็คเกจและที่เก็บและเพิ่มลงในพวงกุญแจที่ใช้โดยผู้จัดการแพคเกจเพื่อตรวจสอบความถูกต้องของแพคเกจที่ดาวน์โหลดจากพื้นที่เก็บข้อมูล

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. ลบคีย์ PGP ออกจากระบบไฟล์:

    rm nginx_signing.key
    
  3. เพิ่มที่เก็บใหม่

    printf "deb http://nginx.org/packages/ubuntu/ xenial nginx \ndeb-src http://nginx.org/packages/ubuntu/ xenial nginx \n" >> /etc/apt/sources.list.d/nginx.list
    
  4. อัพเดตรายการแพ็กเกจของคุณและติดตั้ง Nginx:

    apt update && apt install nginx -y
    
  5. ในการตรวจสอบเวอร์ชั่น Nginx เราสามารถใช้สิ่งต่อไปนี้:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    หากทุกอย่างไปด้วยดีคุณควรเห็นรูปแบบเหมือน1.10.xในเอาต์พุตเมื่อรันnginx -vคำสั่ง

ใบรับรองที่ลงนามเองและ HTTP / 2

แม้ว่าข้อมูลจำเพาะHTTP / 2จะไม่บังคับให้เบราว์เซอร์ใช้งานHTTP / 2ผ่าน TLS แต่เบราว์เซอร์หลักทั้งหมดตัดสินใจใช้HTTP / 2ผ่าน TLS เท่านั้น แต่ไม่ใช่ TLS เวอร์ชันใด ๆ เพียงTLS 1.2หรือสูงกว่า

เราจะสร้าง certs แบบลงนามด้วยตนเองสำหรับexample.comโดเมนfictional เพื่อการผลิตคุณต้องมีโดเมนที่ถูกต้องและใช้ CA ที่เชื่อถือได้

  1. สร้างรหัสส่วนตัว:

    openssl genrsa -aes128 -out example.com.key 2048
    

    หลังจากรันคำสั่งนี้คุณจะต้องป้อนข้อความรหัสผ่าน 2 ครั้ง เนื่องจากวลีรหัสผ่านน่ารำคาญเราจึงจะลบมัน

  2. ลบข้อความรหัสผ่านจากคีย์ส่วนตัว:

    openssl rsa -in example.com.key -out example.com.key
    
  3. สร้างคำขอลงนามใบรับรอง (CSR):

    openssl req -new -sha256 -key example.com.key -out cert-request.csr 
    

    เรากำลังสร้างใบรับรองโดเมนเดียวดังนั้นเราจึงจำเป็นต้องตั้งค่าฟิลด์ชื่อสามัญเท่ากับexample.comโดเมน

  4. สร้างใบรับรอง:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. จัดเรียงใบรับรองและคีย์ส่วนตัว:

    mkdir -p /etc/ssl/testing/private && mkdir /etc/ssl/testing/certs
    mv example.com.key /etc/ssl/testing/private && mv example.com.crt /etc/ssl/testing/certs
    
  6. สร้างไดเรกทอรีโฮสต์เสมือน nginx

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. จากนั้นเรียกใช้และหาคำสั่งnano /etc/nginx/nginx.conf include /etc/nginx/conf.d/*.conf;ใต้คำสั่งนี้ให้เพิ่มinclude /etc/nginx/sites-enabled/*;บันทึก ( CTRL + O ) แล้วออกจาก ( CTRL + X )

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. สร้างไฟล์ที่เรียกว่าexample.com.confinside /etc/nginx/sites-availabledirectory ด้วยคำสั่งนี้nano /etc/nginx/sites-available/example.com.confและคัดลอก / วางรหัสต่อไปนี้:

    server {
        listen 80;
        listen [::]:80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name example.com;
        root /var/www/html;
        index index.nginx-debian.html;
    
        ssl_certificate /etc/ssl/testing/certs/example.com.crt;
        ssl_certificate_key /etc/ssl/testing/private/example.com.key;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
        ssl_prefer_server_ciphers on;
    }
    

    ขอแสดงความยินดีขณะนี้คุณมีเว็บเซิร์ฟเวอร์ที่เปิดใช้งานHTTP / 2 การเพิ่มhttp2พารามิเตอร์ในlistenคำสั่งภายในโฮสต์เสมือน HTTPS จะให้การสนับสนุนHTTP / 2

  9. สร้างลิงก์สัญลักษณ์/etc/nginx/sites-available/example.com.confด้วยคำสั่งนี้:

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. ทดสอบการกำหนดค่าไวยากรณ์

    nginx -t
    
  11. รีสตาร์ท Nginx เพื่อใช้การเปลี่ยนแปลงของคุณ:

    systemctl restart nginx
    
  12. เพิ่มexample.comโดเมนไปยัง/etc/hostsไฟล์

    echo '127.0.0.1    example.com' >> /etc/hosts
    

ในการทดสอบโฮสต์เสมือนของคุณเราต้องใช้เบราว์เซอร์แบบข้อความ

  1. ในการติดตั้ง elinks ใช้คำสั่งต่อไปนี้:

    apt install elinks
    
  2. วิธีทดสอบexample.comโฮสต์เสมือนของคุณ:

    elinks https://example.com
    
  3. เพื่อออกจากกด elinks เบราว์เซอร์Qบนแป้นพิมพ์ของคุณแล้วใส่

ทดสอบ HTTP / 2

เพื่อดูว่าเซิร์ฟเวอร์โปรโตคอลใดโฆษณาวิธีที่ง่ายที่สุดคือการใช้opensslชุดเครื่องมือ

    openssl s_client -connect example.com:443 -nextprotoneg ''

ในผลลัพธ์ของคำสั่งนี้คุณควรเห็นดังนี้:

    CONNECTED(00000003)
    Protocols advertised by server: h2, http/1.1      

หากต้องการดูการทำงานของHTTP / 2คุณสามารถใช้เครื่องมือสำหรับนักพัฒนาเบราว์เซอร์ โปรโตคอล HTTP / 2ถูกระบุด้วยh2หรือHTTP/2.0ตัวระบุ เปิดแผงเครือข่ายในเครื่องมือ dev และรีเฟรชหน้าของคุณ

ข้อสรุป

ตอนนี้คุณควรทราบว่า "ง่าย" คือการเปิดใช้งานHTTP / 2ในการกำหนดค่า Nginx แต่นั่นไม่ใช่ส่วนทั้งหมดของภาพรวม แรกที่คุณควรคิดเกี่ยวกับการเปิดใช้งาน TLS / SSL บนเซิร์ฟเวอร์ของคุณกับชุดการเข้ารหัสที่แข็งแกร่งและให้แน่ใจว่าคุณไม่ได้ใช้ยันต์บัญชีดำ แต่หลังจากการเปิดใช้งานที่แข็งแกร่ง TLS / SSL บนเซิร์ฟเวอร์ของคุณคุณสามารถเริ่มคิดเกี่ยวกับการใช้HTTP / 2

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true