เพิ่มการสนับสนุน Brotli ให้กับ Nginx บน Ubuntu 18.04

Brotli (br)เป็นอัลกอริธึมการบีบอัดโอเพนซอร์สใหม่ที่พัฒนาโดย Google เป็นทางเลือกสำหรับ Gzip, Zopfli และ Deflate มันถูกกำหนดอย่างเป็นทางการใน Internet Engineering Task Force (IETF) เป็นRFC 7932 กรณีศึกษาของ Google เกี่ยวกับ Brotli แสดงอัตราส่วนการบีบอัดที่เล็กกว่าวิธีการปัจจุบันถึง 26% โดยมีการใช้งาน CPU น้อยกว่า

Nginx ไม่มีการสนับสนุนอย่างเป็นทางการ แต่มีโมดูลของบุคคลที่สามที่พัฒนาโดย Google ชื่อngx_brotliซึ่งเราสามารถใช้เพื่อเพิ่มการสนับสนุนให้ Nginx

คู่มือนี้จะแสดงวิธีการเพิ่มการสนับสนุน Brotli ให้กับ Nginx บนอินสแตนซ์ Ubuntu 18.04 LTS Vultr ที่สดใหม่

หมายเหตุ: คำแนะนำนี้จะใช้johndoeเป็นผู้ใช้ตัวอย่างและexample.comเป็นโดเมนตัวอย่าง แทนที่พวกเขาตามชื่อของคุณ

ความต้องการ

  • เซิร์ฟเวอร์ Ubuntu 18.04 LTS
  • รุ่น Nginx 1.11.5 หรือสูงกว่า
  • ชื่อโดเมนที่มีA/ AAAAบันทึกการตั้งค่า
  • ใบรับรอง TLS

ก่อนที่จะเริ่ม

ตรวจสอบเวอร์ชั่นของ Ubuntu

lsb_release -ds
# Ubuntu 18.04 LTS

สร้างnon-rootบัญชีผู้ใช้ใหม่ด้วยsudoการเข้าถึงและเปลี่ยนเป็นบัญชี

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

หมายเหตุ : แทนที่johndoeด้วยชื่อผู้ใช้ของคุณ

อัปเดตซอฟต์แวร์ของระบบปฏิบัติการของคุณ

sudo apt update && sudo apt upgrade -y

ตั้งค่าเขตเวลา

sudo dpkg-reconfigure tzdata

ติดตั้งเครื่องมือและแพ็คเกจการสร้างที่จำเป็น

sudo apt install -y build-essential git apt-transport-https socat

ขั้นตอนที่ 1 - ติดตั้ง Acme.sh และรับใบรับรอง TLS จาก Let's Encrypt

Brotli ต้องการให้คุณตั้งค่าและใช้ HTTPS ในส่วนนี้เราจะได้รับใบรับรองที่เชื่อถือได้จาก Let's Encrypt

ดาวน์โหลดและติดตั้ง Acme.sh

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~
source ~/.bashrc

ตรวจสอบเวอร์ชั่น

acme.sh --version
# v2.8.0

ได้รับอาร์เอสและ ECDSA example.comใบรับรองสำหรับ

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --accountemail your_email@example.com --ocsp-must-staple --keylength 2048

# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --accountemail your_email@example.com --ocsp-must-staple --keylength ec-256

หลังจากเรียกใช้คำสั่งด้านบนใบรับรองและคีย์ของคุณจะอยู่ในตำแหน่งต่อไปนี้:

  • อาร์เอส: /etc/letsencrypt/example.com
  • ECC / ECDSA: /etc/letsencrypt/example.com_ecc

ขั้นตอนที่ 2 - ติดตั้ง Nginx จากที่เก็บ Nginx อย่างเป็นทางการ

ดาวน์โหลดและติดตั้ง Nginx mainline ล่าสุดจาก repo Nginx อย่างเป็นทางการ

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt

ตรวจสอบเวอร์ชั่น

sudo nginx -v
# nginx version: nginx/1.15.2

เปิดใช้งานและเริ่ม Nginx

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

ขั้นตอนที่ 3 - ดาวน์โหลดและรวบรวมซอร์สโค้ด Brotli

หลังจากติดตั้ง Nginx เราจำเป็นต้องสร้างโมดูล Brotli ( ngx_brotli) เป็นโมดูล Nginx แบบไดนามิก จาก Nginx เวอร์ชัน 1.11.5 เป็นไปได้ที่จะรวบรวมโมดูลไดนามิกแต่ละตัวโดยไม่ต้องรวบรวมซอฟต์แวร์ Nginx ที่สมบูรณ์ ในไม่กี่ขั้นตอนถัดไปเราจะสร้างโมดูล Brotli เป็นแบบไดนามิกโดยไม่ต้องรวบรวม Nginx ที่สมบูรณ์

ดาวน์โหลดเวอร์ชันล่าสุดของซอร์สโค้ด mainline Nginx และแตกไฟล์

wget https://nginx.org/download/nginx-1.15.2.tar.gz && tar zxvf nginx-1.15.2.tar.gz

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

nginx-1.15.2.tar.gzลบ

rm nginx-1.15.2.tar.gz

โคลนngx_brotliจาก GitHub

git clone https://github.com/eustas/ngx_brotli.git
cd ngx_brotli && git submodule update --init && cd ~

นำทางไปยังไดเรกทอรีซอร์สโค้ด Nginx

cd ~/nginx-1.15.2

ดาวน์โหลดไลบรารีที่จำเป็น

sudo apt install -y libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

รวบรวมngx_brotliเป็นโมดูลแบบไดนามิกและคัดลอกไปยังไดเรกทอรีมาตรฐานสำหรับโมดูล /etc/nginx/modulesNginx,

./configure --with-compat --add-dynamic-module=../ngx_brotli
make modules
sudo cp objs/*.so /etc/nginx/modules

รายการไฟล์ใน/etc/nginx/modulesและคุณจะเห็นและngx_http_brotli_filter_module.songx_http_brotli_static_module.so

ls /etc/nginx/modules

ตั้งค่าการอนุญาต644สำหรับ.soไฟล์ทั้งหมด

sudo chmod 644 /etc/nginx/modules/*.so

ขั้นตอนที่ 4 - กำหนดค่า Nginx

เราพร้อมที่จะกำหนดค่าการสนับสนุน Brotli ใน Nginx

เรียกใช้sudo vim /etc/nginx/nginx.confและเพิ่มสองคำสั่งต่อไปนี้ที่ด้านบนของไฟล์เพื่อโหลดโมดูล Brotli ใหม่

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

ทดสอบการกำหนดค่า

sudo nginx -t

สร้างไดเรกทอรีรากของเอกสารexample.comและสร้างindex.htmlด้วยเนื้อหาบางส่วนในนั้น

sudo mkdir -p /var/www/example.com
sudo -s
echo "Hello from example.com" >> /var/www/example.com/index.html
exit

example.comสร้างโฮสต์เสมือนจริงสำหรับ

sudo vim /etc/nginx/conf.d/example.com.conf

เติมด้วยการกำหนดค่าต่อไปนี้

server {
  listen 80;
  server_name example.com; # Replace with your domain name
  return 301 https://$server_name$request_uri;
}

server {    
  listen 443 ssl http2;
  server_name example.com; # Replace with your domain name

  root /var/www/example.com; # Replace with your document root

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  brotli on;
  brotli_static on;
  brotli_types text/plain text/css text/javascript application/javascript text/xml application/xml image/svg+xml application/json;
}

ทดสอบการกำหนดค่า

sudo nginx -t

โหลดซ้ำ Nginx

sudo systemctl reload nginx.service

เยี่ยมชมเว็บไซต์ของคุณในเว็บเบราว์เซอร์และเปิดแท็บเครือข่ายของเครื่องมือสำหรับนักพัฒนา คุณจะเห็นContent-Encoding: brในส่วนหัวการตอบสนอง นั่นคือตัวบ่งชี้ที่การบีบอัด Brotli ทำงาน

เพิ่มการสนับสนุน Brotli ให้กับ Nginx บน Ubuntu 18.04

เพิ่มการสนับสนุน Brotli ให้กับ Nginx บน Ubuntu 18.04

คุณเปิดใช้งานการบีบอัด Brotli บนเว็บเซิร์ฟเวอร์ของคุณ

ฝากความเห็น

วิธีการติดตั้ง 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