ค้นหาเว็บไซต์

ติดตั้ง Nginx ด้วย Server Blocks (โฮสต์เสมือน) บน Debian 10


Nginx เป็นเว็บเซิร์ฟเวอร์ประสิทธิภาพสูงยอดนิยมที่ผสมผสานพลังของ Reverse proxying, Load Balancing, Caching และอื่นๆ อีกมากมาย ขึ้นอยู่กับวิธีการกำหนดค่า มันสามารถทำหน้าที่เป็นพร็อกซีย้อนกลับและตัวจัดสรรภาระงานสำหรับเซิร์ฟเวอร์ HTTP/HTTPS

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

อ่านเพิ่มเติม: วิธีติดตั้ง Apache ด้วยโฮสต์เสมือนบน Debian 10

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

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

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

  1. ตัวอย่างของ Debian 10
  2. ชื่อโดเมนแบบเต็ม (FQDN) ชี้ไปที่เซิร์ฟเวอร์
  3. ในคู่มือนี้ เราใช้โดเมน linux-console.net ที่ชี้ไปยังระบบ Debian 10 ที่มีที่อยู่ IP 192.168.0.104
  4. การเชื่อมต่ออินเทอร์เน็ตที่ดี

ขั้นตอนที่ 1: อัปเดตพื้นที่เก็บข้อมูลแพ็คเกจ Debian 10

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

sudo apt update -y

ขั้นตอนที่ 2: ติดตั้ง Nginx บน Debian 10

เนื่องจาก Nginx มีอยู่ในที่เก็บของ Debian เราจึงสามารถดำเนินการติดตั้งได้อย่างสะดวกสบายโดยใช้ apt package manager ที่มาพร้อมกับ Debian

sudo apt install nginx -y

ขั้นตอนที่ 3: การตรวจสอบสถานะของเว็บเซิร์ฟเวอร์ Nginx

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

หากต้องการตรวจสอบสถานะของ Nginx ให้ดำเนินการ:

systemctl status nginx

หากเว็บเซิร์ฟเวอร์เปิดใช้งานอยู่ คุณจะได้รับการแจ้งเตือนด้านล่าง

หากคุณต้องการรีสตาร์ทเว็บเซิร์ฟเวอร์ Nginx ให้รันคำสั่ง

systemctl restart nginx

หากต้องการหยุด Nginx ให้ออกคำสั่ง

systemctl stop nginx

หากต้องการเริ่มเว็บเซิร์ฟเวอร์ ให้รัน

systemctl start nginx

เพื่อกำหนดค่าเว็บเซิร์ฟเวอร์ Nginx ให้เริ่มทำงานเมื่อบูตเครื่อง

systemctl enable nginx

อ่านเพิ่มเติม: 10 คำสั่ง Nginx ที่ใช้มากที่สุดที่ผู้ใช้ Linux ทุกคนต้องรู้จัก

ขั้นตอนที่ 4: กำหนดค่าไฟร์วอลล์เพื่อเปิดพอร์ต Nginx

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

เพื่อให้บรรลุเป้าหมายนี้ ให้ดำเนินการคำสั่ง

sudo ufw allow 'Nginx HTTP'

ถัดไป โหลดไฟร์วอลล์ใหม่เพื่อให้มีผลกับการเปลี่ยนแปลง

sudo ufw reload

เยี่ยมมาก ตอนนี้คุณสามารถตรวจสอบได้ว่า HTTP ได้รับอนุญาตผ่านไฟร์วอลล์โดยการรันหรือไม่

sudo ufw status

จากตัวอย่างข้างต้น เราจะเห็นได้อย่างชัดเจนว่า Nginx HTTP ได้รับอนุญาตผ่าน ไฟร์วอลล์ UFW

ขั้นตอนที่ 5: การเข้าถึงเว็บเซิร์ฟเวอร์ Nginx

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

http://server-IP-address

นี่เป็นการยืนยันว่า Nginx พร้อมใช้งานแล้ว

ขั้นตอนที่ 6: การกำหนดค่าบล็อกเซิร์ฟเวอร์ Nginx บน Debian 10

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

สำหรับส่วนนี้ เราจะใช้ชื่อโดเมน linux-console.net ซึ่งบันทึก A ชี้ไปที่ IP ของเซิร์ฟเวอร์ 192.168.0.104

เมื่อคุณชี้ชื่อโดเมนไปยังที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ ชื่อโดเมนจะเปลี่ยนในไม่ช้าและชี้ไปที่เว็บเซิร์ฟเวอร์ของคุณดังที่แสดง

ตอนนี้เรามาสร้างบล็อกเซิร์ฟเวอร์กันดีกว่า

ขั้นแรก เรามาสร้างไดเร็กทอรีสำหรับโดเมนของเราตามที่แสดง

sudo mkdir -p /var/www/html/linux-console.net

จากนั้นกำหนดความเป็นเจ้าของไฟล์ที่ต้องการตามที่แสดง

sudo chown -R $USER:$USER /var/www/html/linux-console.net

จากนั้น กำหนดสิทธิ์การอ่านและดำเนินการให้กับกลุ่มและผู้ใช้สาธารณะตามที่แสดง

sudo chmod -R 755 /var/www/html/linux-console.net

ตอนนี้เรามาสร้างหน้าเว็บตัวอย่าง index.html ง่ายๆ โดยใช้โปรแกรมแก้ไขข้อความเป็นกลุ่ม

sudo vim /var/www/html/linux-console.net/index.html

เพิ่มเนื้อหาตัวอย่างบางส่วนลงในไฟล์ สิ่งนี้จะปรากฏบนเบราว์เซอร์

<html>
    <head>
        <title>Welcome to Linux geeks</title>
    </head>
    <body>
        <h1>Success! Welcome to your new server block on Tecmint Nginx Web Server !</h1>
    </body>
</html>

บันทึกและออกจากโปรแกรมแก้ไข

หากต้องการให้บริการเนื้อหานี้ จำเป็นต้องสร้างบล็อกเซิร์ฟเวอร์

มาสร้างบล็อกเซิร์ฟเวอร์กันดีกว่า

vim  /etc/nginx/sites-available/linux-console.net

คัดลอกและวางเนื้อหาต่อไปนี้ลงในไฟล์บล็อกเซิร์ฟเวอร์

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/linux-console.net;
        index index.html index.htm index.nginx-debian.html;

        server_name linux-console.net linux-console.net;

        location / {
                try_files $uri $uri/ =404;
        }
}

อย่าลืมอัปเดตชื่อโดเมน linux-console.net ด้วยชื่อโดเมนของคุณเอง

หากต้องการเปิดใช้งานหรือเปิดใช้งานไฟล์บล็อกเซิร์ฟเวอร์ ให้สร้างลิงก์สัญลักษณ์ตามที่แสดง

sudo ln -s /etc/nginx/sites-available/linux-console.net /etc/nginx/sites-enabled/

เพื่อตรวจสอบว่าการตั้งค่าทั้งหมดใน Nginx ได้รับการกำหนดค่าอย่างถูกต้อง ให้รัน

sudo nginx -t

เยี่ยมเลย เราพร้อมแล้ว! ในที่สุดก็รีสตาร์ท Nginx

sudo systemctl restart nginx

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

ขั้นตอนที่ 7: การเข้าถึงไฟล์บันทึก Nginx

หากต้องการเข้าถึงไฟล์บันทึกเกี่ยวกับคำขอที่ส่งไปยังเซิร์ฟเวอร์ของคุณ ให้เข้าถึงไฟล์ด้านล่าง

sudo vim /var/log/nginx/access.log 

ในกรณีที่คุณพบข้อผิดพลาดในเว็บเซิร์ฟเวอร์ Nginx ให้ตรวจสอบไฟล์เพื่อหาข้อผิดพลาด

sudo vim /var/log/nginx/error.log
บทสรุป

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