ข้อกำหนดเบื้องต้น:
เพื่อดำเนินการตามขั้นตอนที่แสดงให้เห็นในคู่มือนี้ คุณต้องมีส่วนประกอบต่อไปนี้:
- ระบบ 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 .