ติดตั้ง Nginx บน Debian 12

Tid Tang Nginx Bn Debian 12



ในคู่มือนี้ เราจะสาธิตวิธีการติดตั้งและกำหนดค่า Nginx บน Debian 12

ข้อกำหนดเบื้องต้น:

เพื่อดำเนินการตามขั้นตอนที่แสดงให้เห็นในคู่มือนี้ คุณต้องมีส่วนประกอบต่อไปนี้:

  • ระบบ Debian 12 ที่กำหนดค่าอย่างเหมาะสม เช็คเอาท์ วิธีการติดตั้ง Debian บน VirtualBox VM .
  • เข้าถึงผู้ใช้ที่ไม่ใช่รูทด้วยสิทธิ์ sudo เรียนรู้เพิ่มเติมเกี่ยวกับ การจัดการสิทธิ์ sudo โดยใช้ /etc/sudoers ในเดเบียน .

Nginx บนเดเบียน

พัฒนาและดูแลรักษาโดย โครงการเดเบียน , เดเบียนคือ เป็นที่นิยม , การกระจาย Linux แบบโอเพ่นซอร์สฟรีและฟรี Debian มีชื่อเสียงในด้านความเสถียร ความปลอดภัย และการสนับสนุนจากชุมชน Debian 12 (ชื่อรหัสว่า “หนอนหนังสือ”) เป็นเวอร์ชันเสถียรล่าสุด เรียนรู้เพิ่มเติมเกี่ยวกับ อัปเกรดจาก Debian 11 เป็น Debian 12 .







งินซ์ เป็นเว็บเซิร์ฟเวอร์โอเพ่นซอร์สฟรีที่ขึ้นชื่อในด้านประสิทธิภาพสูง ความสามารถในการขยายขนาด ประสิทธิภาพของหน่วยความจำ และความปลอดภัย นอกจากนี้ยังสามารถทำหน้าที่เป็นพร็อกซีย้อนกลับ, โหลดบาลานเซอร์, แคช HTTP เป็นต้น



บน Debian นั้น Nginx มีให้บริการโดยตรงจาก repos แพ็คเกจอย่างเป็นทางการ อย่างไรก็ตามมันอาจจะล้าสมัยเล็กน้อยอันเป็นผลมาจาก รอบการเปิดตัวแพ็คเกจของ Debian . โชคดีที่ Nginx เสนอ repo Debian อย่างเป็นทางการพร้อมรุ่นล่าสุด



วิธีที่ 1: การติดตั้ง Nginx จาก Debian Repo

ขั้นแรก ให้เปิดหน้าต่างเทอร์มินัลและอัปเดตแคช repo APT:





$ ซูโดะ ปรับปรุงฉลาด

Nginx มีให้เป็นแพ็คเกจ “nginx”:



$ ฉลาดแสดง nginx

หากต้องการติดตั้ง Nginx ให้รันคำสั่งต่อไปนี้:

$ ซูโดะ ฉลาด ติดตั้ง nginx

วิธีที่ 2: การติดตั้ง Nginx จาก Nginx Repo

การกำหนดค่า repo Nginx APT จะทำให้ Nginx เวอร์ชันล่าสุด อย่างไรก็ตาม อาจขัดแย้งกับแพ็คเกจ Nginx อื่นๆ จาก repo เริ่มต้น

การติดตั้งข้อกำหนดเบื้องต้น

ขั้นแรก ติดตั้งแพ็กเกจข้อกำหนดเบื้องต้น:

$ ซูโดะ ฉลาด ติดตั้ง curl gnupg2 ca-certificates lsb-release debian-archive-keyring

การนำเข้าคีย์การลงนาม GPG

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

$ ขด https: // nginx.org / กุญแจ / nginx_signing.key | จีพีจี --ที่รัก | ซูโดะ ที / เรา / แบ่งปัน / พวงกุญแจ / nginx-เก็บถาวร-keyring.gpg > / ผู้พัฒนา / โมฆะ

ตรวจสอบว่านำเข้าคีย์ที่ถูกต้องหรือไม่:

$ จีพีจี --dry-run --เงียบ --ไม่มี-พวงกุญแจ --นำเข้า --ตัวเลือกการนำเข้า นำเข้า-แสดง / เรา / แบ่งปัน / พวงกุญแจ / nginx-เก็บถาวร-keyring.gpg

เอาต์พุตควรพิมพ์ 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 เป็นลายนิ้วมือของคีย์ ถ้าไม่เช่นนั้นให้ลบไฟล์ออกจาก /usr/share/keyrings/nginx-archive-keyring.gpg และรีสตาร์ทกระบวนการ

การเพิ่ม Nginx APT Repo

เมื่อติดตั้งคีย์การลงนามแล้ว ตอนนี้เราสามารถเพิ่ม Nginx repo ไปยัง APT ได้แล้ว Nginx มีสองสาขาที่วางจำหน่าย:

มั่นคง : เข้ากันได้ดีขึ้นกับโมดูลของบุคคลที่สาม ได้รับเฉพาะการแก้ไขที่สำคัญเท่านั้น

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

Nginx แนะนำให้ปรับใช้สาขา mainline อย่างเป็นทางการในทุกกรณี หากต้องการเพิ่มสาขา mainline Nginx ให้รันคำสั่งต่อไปนี้:

$ เสียงสะท้อน 'deb [ลงนามโดย =/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian `lsb_release -cs` งิงซ์' | ซูโดะ ที / ฯลฯ / ฉลาด / แหล่งที่มา.list.d / nginx.list

หากคุณต้องการสาขาที่เสถียรของ Nginx แทน ให้รันคำสั่งต่อไปนี้:

$ เสียงสะท้อน 'deb [ลงนามโดย =/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian `lsb_release -cs` งิงซ์' | ซูโดะ ที / ฯลฯ / ฉลาด / แหล่งที่มา.list.d / nginx.list

การปักหมุด Repo

หากต้องการบังคับให้ APT ใช้ Nginx repo เมื่อต้องจัดการกับแพ็คเกจที่เกี่ยวข้องกับ Nginx เราเปิดใช้งานการปักหมุด repo:

$ เสียงสะท้อน -มันคือ 'บรรจุุภัณฑ์: * \n พิน: ต้นกำเนิด nginx.org \n พิน: ปล่อย o=nginx \n ลำดับความสำคัญของพิน: 900 \n ' | ซูโดะ ที / ฯลฯ / ฉลาด / การตั้งค่าd / 99nginx

การติดตั้ง Nginx

เมื่อกำหนดค่า repo ใหม่แล้ว ให้อัปเดตแคช repo APT:

$ ซูโดะ ปรับปรุงฉลาด

ตรวจสอบข้อมูลแพ็คเกจ Nginx:

$ ฉลาดแสดง nginx

สุดท้ายให้ติดตั้ง Nginx:

$ ซูโดะ ฉลาด ติดตั้ง nginx

การปรับไฟร์วอลล์

Debian มาพร้อมกับไฟร์วอลล์ iptables (netfilter) ที่ติดตั้งไว้ล่วงหน้า เพื่อความสะดวกในการใช้งาน ขอแนะนำให้ใช้ ไฟร์วอลล์ UFW . โดยพื้นฐานแล้วมันเป็นส่วนหน้าที่เป็นมิตรต่อผู้ใช้มากกว่าสำหรับ netfilter

ตามค่าเริ่มต้น UFW จะบล็อก Nginx จากการเข้าถึงเครือข่าย หากต้องการอนุญาตการเข้าถึงทั้ง HTTP/HTTPS ให้รันคำสั่งต่อไปนี้:

$ ซูโดะ เอ่อ อนุญาต 80 , 443 / ทีพีพี

หากคุณต้องการเข้าถึง HTTP เท่านั้น ให้ใช้คำสั่งต่อไปนี้แทน:

$ ซูโดะ เอ่อ อนุญาต 80 / ทีพีพี

หากคุณต้องการเข้าถึง HTTPS เท่านั้น ให้ใช้คำสั่งต่อไปนี้แทน:

$ ซูโดะ เอ่อ อนุญาต 443 / ทีพีพี

ตรวจสอบว่าเพิ่มกฎสำเร็จหรือไม่:

$ ซูโดะ สถานะ ufw

ตรวจสอบการติดตั้ง Nginx

มีสองวิธีที่เราสามารถตรวจสอบได้ว่าการติดตั้ง Nginx สำเร็จหรือไม่ ขั้นแรก ตรวจสอบสถานะของบริการ Nginx:

$ ซูโดะ สถานะ systemctl nginx

หากไม่ได้ทำงานอยู่ ให้เริ่มเซิร์ฟเวอร์:

$ ซูโดะ systemctl เริ่ม nginx

ตอนนี้ เปิด URL ต่อไปนี้ในเว็บเบราว์เซอร์:

$ http: // localhost_or_server_ip /

คุณควรเข้าสู่หน้าต้อนรับ Nginx เริ่มต้น

การจัดการกระบวนการ Nginx

เมื่อติดตั้ง Nginx จะลงทะเบียนบริการกับ systemd เราสามารถจัดการกระบวนการ Nginx ได้อย่างง่ายดายโดยใช้บริการ

สถานะ Nginx

คำสั่งต่อไปนี้ส่งคืนสถานะของ Nginx:

$ ซูโดะ สถานะ systemctl nginx

การหยุด Nginx

คำสั่งต่อไปนี้หยุด Nginx:

$ ซูโดะ systemctl หยุด nginx

กำลังเริ่ม Nginx

หาก Nginx ไม่ทำงาน ให้ใช้คำสั่งต่อไปนี้เพื่อเริ่มเซิร์ฟเวอร์:

$ ซูโดะ systemctl เริ่ม nginx

กำลังโหลด Nginx ใหม่

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

$ ซูโดะ systemctl รีโหลด nginx

กำลังรีสตาร์ท Nginx

หากต้องการรีสตาร์ทเซิร์ฟเวอร์ Nginx ให้รันคำสั่งต่อไปนี้:

$ ซูโดะ systemctl รีสตาร์ท nginx

กำลังโหลดซ้ำหรือรีสตาร์ท Nginx

หากคุณไม่แน่ใจว่าจะโหลดซ้ำหรือรีสตาร์ท Nginx ให้ใช้คำสั่งต่อไปนี้:

$ ซูโดะ systemctl รีโหลดหรือรีสตาร์ท nginx

ในกรณีนี้ systemd จะตัดสินใจเลือกแนวทางปฏิบัติที่ดีที่สุดโดยอัตโนมัติ

เคล็ดลับโบนัส 1: บล็อก Nginx

เช่นเดียวกับโฮสต์เสมือนใน Apache Nginx ยังรองรับหลายโฮสต์บนเซิร์ฟเวอร์เดียว

นี่คือการกำหนดค่าจำลองที่จัดการเซิร์ฟเวอร์เสมือนสองตัว ( แหล่งที่มา ):

http {

ดัชนีดัชนี html ;

เซิร์ฟเวอร์ {

เซิร์ฟเวอร์_ชื่อ www. โดเมน1 . กับ ;

บันทึก access_log / โดเมน1. เข้าถึง . บันทึก หลัก ;

ราก / เคยเป็น / www / โดเมน1. กับ / htdocs ;

}

เซิร์ฟเวอร์ {

เซิร์ฟเวอร์_ชื่อ www. โดเมน2 . กับ ;

บันทึก access_log / โดเมน2. เข้าถึง . บันทึก หลัก ;

ราก / เคยเป็น / www / โดเมน2. กับ / htdocs ;

}

}

ไฟล์ประกอบด้วยหลายบล็อกภายในไฟล์คอนฟิกูเรชัน แต่ละบล็อกอธิบายคุณสมบัติต่างๆ บล็อกที่สำคัญที่สุดคือบล็อกเซิร์ฟเวอร์และตำแหน่ง:

  • เซิร์ฟเวอร์ : อธิบายเซิร์ฟเวอร์เสมือนเพื่อจัดการคำขอของไคลเอ็นต์ประเภทเฉพาะ สามารถมีได้หลายบล็อกเซิร์ฟเวอร์สำหรับเซิร์ฟเวอร์เสมือนหลายเครื่อง การเชื่อมต่อขาเข้าจะถูกเปลี่ยนเส้นทางไปยังบล็อกเซิร์ฟเวอร์ที่แตกต่างกันตามชื่อโดเมนที่ร้องขอ ที่อยู่ IP และพอร์ต
  • ที่ตั้ง : เป็นบล็อกย่อยภายในบล็อกเซิร์ฟเวอร์ อธิบายว่า Nginx ควรจัดการคำขอไคลเอ็นต์ขาเข้าสำหรับทรัพยากรต่างๆ อย่างไร

การกำหนดค่าเหล่านี้จะถูกเก็บไว้ในไฟล์ใน /etc/nginx/sites-available . อาจมีไฟล์ที่ไม่ซ้ำกันสำหรับทุกบล็อกเซิร์ฟเวอร์ การกำหนดค่าจะถูกใช้เมื่อวางไว้ใต้ /etc/nginx/sites-enabled . โดยทั่วไป ไฟล์การกำหนดค่าจากไซต์ที่มีอยู่จะเชื่อมโยงกับไซต์ที่เปิดใช้งาน

เคล็ดลับโบนัส 2: ไฟล์และไดเรกทอรี Nginx ที่สำคัญ

นี่คือรายการสั้นๆ ของไฟล์และไดเร็กทอรี Nginx ที่สำคัญ:

  • /etc/nginx : ไดเรกทอรีหลักที่โฮสต์การกำหนดค่า Nginx ทั้งหมด
  • /etc/nginx/sites-available : มีไฟล์บล็อกเซิร์ฟเวอร์ ไม่ได้ใช้ไฟล์การกำหนดค่า
  • /etc/nginx/sites-enabled : นอกจากนี้ยังโฮสต์บล็อกเซิร์ฟเวอร์ต่อไซต์ด้วย โดยทั่วไปจะเป็นลิงก์สัญลักษณ์จากไซต์ที่มีอยู่ Nginx ใช้การกำหนดค่าจากไดเร็กทอรีนี้เพื่อให้บริการตามคำขอของลูกค้า
  • /etc/nginx/ตัวอย่าง : เป็นโฮสต์ส่วนย่อยของการกำหนดค่าที่สามารถนำไปใช้ที่อื่นได้
  • /etc/nginx/ngnix.conf : เป็นไฟล์กำหนดค่าหลักสำหรับ Nginx มันจัดการพฤติกรรมทั่วโลกของ Nginx

บทสรุป

เราได้จัดแสดงวิธีการต่างๆ ในการติดตั้ง Nginx บน Debian นอกจากนี้เรายังพูดคุยสั้น ๆ ถึงวิธีจัดการกระบวนการ Nginx โดยใช้ systemd นอกจากนี้ เรายังพูดคุยสั้นๆ เกี่ยวกับบล็อก Nginx และวิธีกำหนดค่า Nginx เพื่อให้บริการโฮสต์เสมือนหลายรายการ

สนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Nginx หรือไม่? ตรวจสอบ หมวดหมู่ย่อย Nginx .