วิธีการติดตั้ง Nginx บน Ubuntu 20.04 LTS

คำแนะนำทีละขั้นตอนโดยละเอียดในการติดตั้งและตั้งค่าเว็บเซิร์ฟเวอร์ Nginx บนระบบ Ubuntu 20.04

Nginx เป็นเว็บเซิร์ฟเวอร์พร็อกซีย้อนกลับโอเพ่นซอร์สและยอดนิยมที่มีอยู่ในหลายแพลตฟอร์ม ซอฟต์แวร์ได้รับการพัฒนาโดย Igor Sysoev เพื่อแก้ปัญหา C10K และเปิดตัวครั้งแรกในปี 2547 ปัญหา C10K เป็นปัญหาในการจัดการลูกค้านับหมื่นรายพร้อมกัน ซึ่งค่อนข้างไม่ง่ายในต้นปี 2000

ในบทช่วยสอนนี้ เราจะมาดูวิธีการติดตั้งและตั้งค่า Nginx บน Ubuntu 20.04 LTS

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

ระบบที่ติดตั้ง Ubuntu 20.04 และ a sudo ผู้ใช้ นอกจากนี้ คุณไม่จำเป็นต้องมีเว็บเซิร์ฟเวอร์อื่น เช่น Apache ที่ทำงานบนพอร์ต 80 หรือ 443

การติดตั้ง Nginx

Nginx มีอยู่ในที่เก็บ Ubuntu 20.04 และ ฉลาด package manager สามารถใช้ติดตั้งได้ ดังนั้นในการติดตั้ง Nginx ให้เปิดเทอร์มินัลโดยใช้ ctrl+alt+t และเรียกใช้:

อัปเดต sudo apt && sudo apt ติดตั้ง nginx

การติดตั้งจะเสร็จสิ้นในไม่ช้า และ Nginx daemon จะเริ่มในพื้นหลังโดยอัตโนมัติ ดังนั้นเพื่อตรวจสอบสถานะของ Nginx ให้รัน:

สถานะ sudo systemctl nginx

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

การกำหนดค่าไฟร์วอลล์ Ubuntu (UFW)

ตามค่าเริ่มต้น พอร์ตขาออก HTTP (80) และ HTTPS (443) จะปิดบน Ubuntu 20.04 นอกจากนี้ daemon ไฟร์วอลล์เริ่มต้น ufw ถูกปิดใช้งานเนื่องจากพอร์ตทั้งหมดถูกปิด

ดังนั้น ในการเข้าถึงเซิร์ฟเวอร์ Nginx จากระบบอื่น คุณจะต้องเปิดใช้งาน ufw และตั้งค่าให้ถูกต้องเพื่อรองรับการรับส่งข้อมูลบนพอร์ต 80 และ 443. ก่อนที่คุณจะเปิดใช้งาน ufwให้รู้ว่าหากคุณกำลังตั้งค่า Nginx บนเซิร์ฟเวอร์ระยะไกล ให้อัปเดต .ก่อน ufw กฎที่จะอนุญาต ssh โดยการวิ่ง:

sudo ufw อนุญาต ssh

คำสั่งข้างต้นช่วยให้ ssh เข้าถึงเซิร์ฟเวอร์ระยะไกลโดยไม่ได้รับอนุญาต ssh คุณจะถูกล็อคออกจากเซิร์ฟเวอร์ระยะไกล

หลังจากเปิดใช้งาน ssh การเข้าถึง คุณสามารถเปิดใช้งาน ufw firewall daemon โดยเรียกใช้:

sudo ufw เปิดใช้งาน

ตอนนี้ คุณต้องเปลี่ยนกฎไฟร์วอลล์เพื่ออนุญาตพอร์ต HTTP และ HTTPS เพื่อให้ Nginx สามารถให้บริการรับส่งข้อมูลทางเว็บได้ หากต้องการเปลี่ยนกฎ ให้เรียกใช้:

sudo ufw อนุญาตให้ 'Nginx เต็ม'

Nginx เต็ม อนุญาตทั้งพอร์ต HTTP และ HTTPS สำหรับการรับส่งข้อมูลขาเข้าและขาออกจากที่อยู่ IP ทั้งหมด

หลังจากนั้นตรวจสอบว่าได้เพิ่มกฎลงใน ufw ไฟร์วอลล์โดยรันคำสั่ง:

sudo ufw สถานะ

คำสั่งดังกล่าวจะส่งออกกฎที่เราเพิ่มเข้าไป ufw ดีมอนไฟร์วอลล์

กำลังเชื่อมต่อกับเซิร์ฟเวอร์ Nginx

ตอนนี้เราได้ติดตั้ง Nginx และกำหนดค่าแล้ว ufw เพื่ออนุญาตการรับส่งข้อมูลเว็บ HTTP และ HTTPS ขาเข้า คุณควรจะสามารถเข้าถึงเซิร์ฟเวอร์ Nginx ได้โดยใช้ที่อยู่ IP ของเซิร์ฟเวอร์

หากคุณไม่ทราบที่อยู่ IP ของเซิร์ฟเวอร์ ให้ใช้คำสั่งด้านล่างเพื่อเรียกข้อมูลดังกล่าวอย่างง่ายดาย

ip addr แสดง eth0 | grep inet | awk '{ พิมพ์ $2; }' | sed 's/\/.*$//'

เมื่อคุณได้ที่อยู่ IP แล้ว ให้วางลงในเบราว์เซอร์ของคุณแล้วกด Enter

//เซิร์ฟเวอร์ของคุณ-ip

หากทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง คุณควรจะสามารถเห็นหน้าเว็บ "ยินดีต้อนรับสู่ nginx!"

ไฟล์ Nginx และไดเรกทอรี

ตอนนี้เราได้ติดตั้ง Nginx และทำงานบนเซิร์ฟเวอร์ของคุณแล้ว ให้เราดูที่ไฟล์และไดเร็กทอรี Nginx ที่สำคัญบางอย่างที่คุณจะต้องใช้ในการกำหนดค่าเว็บไซต์/เว็บแอปของคุณ

เนื้อหาเว็บเซิร์ฟเวอร์

คุณสามารถกำหนดค่าตำแหน่งใดก็ได้ที่คุณต้องการให้เป็นไดเรกทอรีรากสำหรับบล็อกเซิร์ฟเวอร์ของคุณ HTML เริ่มต้นของ Nginx โดยตรงคือ /var/www/htmlเป็นที่ที่หน้า 'ยินดีต้อนรับ' ที่เราเข้าถึงก่อนหน้านี้ตั้งอยู่

ตำแหน่งอื่นๆ ที่มักจะใช้เป็นไดเร็กทอรีรากสำหรับโดเมน ได้แก่:

  • /บ้าน//
  • /var/www/html/
  • /เลือก/

ไฟล์กำหนดค่า Nginx

ไฟล์การกำหนดค่า Nginx ทั้งหมดอยู่ใน /etc/nginx ไดเร็กทอรี มาดูไฟล์สำคัญบางไฟล์ที่เราจำเป็นต้องใช้ในการตั้งค่าโดเมนพื้นฐานกัน

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

บันทึกเซิร์ฟเวอร์

Nginx บันทึกเหตุการณ์/กิจกรรมและเก็บไว้ในไฟล์บันทึกใน /var/log/nginx ไดเร็กทอรี กิจกรรมบันทึก Nginx ในไฟล์เหล่านี้:

  • /var/log/nginx/access.log: ไฟล์นี้บันทึกไคลเอ็นต์ที่เข้าถึงเซิร์ฟเวอร์ Nginx รายละเอียดรวมถึงที่อยู่ IP ของไคลเอนต์ เวลาและวันที่ เบราว์เซอร์ที่ใช้ในการเข้าถึงเซิร์ฟเวอร์และระบบปฏิบัติการ
  • /var/log/nginx/error.log: ไฟล์นี้บันทึกข้อผิดพลาดที่พบโดยเซิร์ฟเวอร์ Nginx ขณะทำงาน

ดังนั้น ในส่วนนี้ เราได้พิจารณาสั้น ๆ เกี่ยวกับไฟล์และไดเร็กทอรี Nginx ที่สำคัญบางไฟล์ซึ่งเพียงพอสำหรับการเริ่มต้น

การตั้งค่าบล็อคเซิร์ฟเวอร์

ตอนนี้เรามีความรู้พื้นฐานเกี่ยวกับไฟล์ Nginx และเซิร์ฟเวอร์แล้ว เราก็พร้อมที่จะตั้งค่าบล็อกเซิร์ฟเวอร์ของเราเอง บล็อกเซิร์ฟเวอร์คล้ายกับโฮสต์เสมือนของ Apache

เราจะดูวิธีสร้างบล็อกเซิร์ฟเวอร์และสาธิตให้เราใช้ example.com เป็นโดเมนในกระบวนการสร้าง

💡เปลี่ยน example.com ด้วยชื่อโดเมนของคุณ.

ก่อนที่เราจะเริ่มกำหนดค่า Server Blocks เราจำเป็นต้องสร้างไดเร็กทอรีเพื่อใช้เป็นไดเร็กทอรีรากสำหรับเนื้อหาเว็บไซต์ ให้เราได้สร้างสรรค์ /var/www/example.com/html ไดเร็กทอรีสำหรับโดเมนโดยใช้ mkdir สั่งการ.

sudo mkdir -p /var/www/example.com/html

ดิ -p ตัวเลือกจะสร้างไดเร็กทอรีหลักทั้งหมดที่จำเป็น นั่นคือ มันจะสร้าง example.com ไดเร็กทอรีหลักto html หากไม่มีอยู่

เปลี่ยนความเป็นเจ้าของไดเร็กทอรีด้วย the $USER ตัวแปรสภาพแวดล้อม:

sudo chown -R $USER:$USER /var/www/example.com/html

ถัดไป สร้างแบบง่าย index.html ไฟล์ที่จะเข้าถึงได้เมื่อคุณเยี่ยมชมโดเมนที่ได้รับการกำหนดค่า นี้มีวัตถุประสงค์เพื่ออธิบายเท่านั้น

nano /var/www/example.com/html/index.html

วางเนื้อหาต่อไปนี้ในไฟล์ที่เราเพิ่งสร้างบนเซิร์ฟเวอร์

  ยินดีต้อนรับสู่ example.com! 

โย่! เข้าถึง example.com ได้แล้ว!

กด ctrl+o เพื่อเขียนและบันทึก index.html ไฟล์แล้วกด ctrl+x ที่จะออก นาโน บรรณาธิการ

ตอนนี้ ในที่สุด เราก็สามารถย้ายไปสร้างบล็อกเซิร์ฟเวอร์ เพื่อให้ Nginx สามารถให้บริการ index.html เมื่อผู้ใช้บางคนไปที่ example.com. ดังนั้นในการสร้างบล็อกเซิร์ฟเวอร์ เราจำเป็นต้องสร้างไฟล์การกำหนดค่าชื่อ example.com ใน ไซต์-ที่มีอยู่ ไดเร็กทอรี ในการทำเช่นนั้น เราใช้ nano และเรียกใช้:

sudo nano /etc/nginx/sites-available/example.com

จากนั้นพิมพ์หรือคัดลอก/วางการกำหนดค่าต่อไปนี้ แล้วกด ctrl+o และเข้าไปเขียนบันทึก ในทำนองเดียวกัน กด ctrl+x เพื่อปิดตัวแก้ไขนาโน

เซิร์ฟเวอร์ { ฟัง 80; ฟัง [::]:80; server_name example.com www.example.com; รูท /var/www/example-domain.com/html; ดัชนี index.html; ตำแหน่ง / { try_files $uri $uri/ =404; } }

การกำหนดค่าข้างต้นคล้ายกับการกำหนดค่าบล็อกเซิร์ฟเวอร์เริ่มต้น เรามีการเปลี่ยนแปลง ราก คำสั่งให้ชี้ไปที่ไดเร็กทอรีรากใหม่ของเราและเปลี่ยน ชื่อเซิร์ฟเวอร์ ไปยังชื่อโดเมนของเรา ในขณะที่ ที่ตั้ง{} คำสั่งทำหน้าที่เป็นคำสั่งตรวจจับข้อผิดพลาดหากไม่พบไฟล์และแสดงข้อผิดพลาด 404 ให้กับลูกค้า

ต่อไป เราสามารถเปิดใช้งานบล็อกเซิร์ฟเวอร์ของเรา เพื่อให้ Nginx ให้บริการ example.com หน้าเว็บ. ในการเปิดใช้งานบล็อกเซิร์ฟเวอร์ของเรา เราจำเป็นต้องสร้างลิงก์สัญลักษณ์ของ example.com ไฟล์จาก ไซต์-ที่มีอยู่ ถึง เปิดใช้งานไซต์ ไดเร็กทอรี โดยเรียกใช้:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled

ลิงค์จะถูกสร้างขึ้นใน เปิดใช้งานไซต์ ไดเรกทอรีและตอนนี้ example.com ควรเปิดใช้งาน ตอนนี้เรามีเซิร์ฟเวอร์สองบล็อกที่เปิดใช้งานบนเซิร์ฟเวอร์ Nginx ของเราซึ่งจะตอบสนองต่อคำขอตาม ฟัง และ sever_name คำสั่งที่บันทึกไว้ใน example.com การกำหนดค่าบล็อกเซิร์ฟเวอร์

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

sudo nginx -t

ตอนนี้ ให้รีสตาร์ท Nginx เพื่อใช้การเปลี่ยนแปลงโดยเรียกใช้คำสั่งต่อไปนี้:

sudo systemctl รีสตาร์ท nginx

Nginx จะเริ่มให้บริการบล็อกเซิร์ฟเวอร์ของคุณตอนนี้ คุณสามารถไปที่ //ชื่อโดเมนของคุณ และดูหน้าเว็บของคุณแบบสด

บันทึก: เพื่อให้ส่วนด้านบนใช้งานได้ คุณจะต้องตั้งค่าโดเมนของคุณเองและแทนที่ example.com ด้วยชื่อโดเมนของคุณเอง นอกจากนี้ คุณจะต้องกำหนดค่า DNS สำหรับโดเมนของคุณให้ชี้ไปยังที่อยู่ IP ของเซิร์ฟเวอร์ Nginx ของคุณ

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

หากต้องการทราบและเรียนรู้เพิ่มเติมเกี่ยวกับ Nginx คุณอาจต้องการดู Nginx wiki