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

วิธีการตั้งค่าบล็อกเซิร์ฟเวอร์ Nginx (โฮสต์เสมือน) บน Ubuntu 20.04


ในบางครั้ง คุณอาจต้องโฮสต์มากกว่าหนึ่งโดเมนหรือเว็บไซต์บนเว็บเซิร์ฟเวอร์ Nginx ของคุณ เพื่อให้สิ่งนี้เกิดขึ้น จำเป็นต้องกำหนดค่า Server Block (Virtual Hosts) เพื่อสรุปการกำหนดค่าทั้งหมดของโดเมนของคุณ บล็อกเซิร์ฟเวอร์ Nginx มีความหมายเหมือนกันกับไฟล์โฮสต์เสมือน Apache และมีจุดประสงค์เดียวกัน

หัวข้อนี้สาธิตวิธีการตั้งค่าบล็อกเซิร์ฟเวอร์ Nginx บน Ubuntu 20.04

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

  • บันทึก A ที่กำหนดโดยผู้ให้บริการโฮสต์ชื่อโดเมนของคุณ ระเบียน A คือระเบียน DNS ที่ชี้ชื่อโดเมนไปยังที่อยู่ IP ของเซิร์ฟเวอร์สาธารณะ สำหรับคู่มือนี้ เราจะใช้ชื่อโดเมน crazytechgeek.info เพื่อจุดประสงค์ในการอธิบาย
  • ติดตั้งเซิร์ฟเวอร์ Nginx หรือ LEMP Stack บนอินสแตนซ์ Ubuntu 20.04 LTS
  • ผู้ใช้เข้าสู่ระบบที่มีสิทธิ์ Sudo

เมื่อมีคุณสมบัติตรงตามข้อกำหนดทั้งหมดแล้ว มาดูวิธีตั้งค่าบล็อกเซิร์ฟเวอร์ Nginx ใน Ubuntu กันดีกว่า

ขั้นตอนที่ 1: สร้างไดเรกทอรีรูทเอกสาร Nginx

ในการเริ่มต้น เราจะสร้างไดเร็กทอรีแยกต่างหากสำหรับโดเมนของเราซึ่งจะมีการตั้งค่าทั้งหมดที่เกี่ยวข้องกับโดเมน

sudo mkdir -p /var/www/crazytechgeek.info/html

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

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

ถัดไป กำหนดสิทธิ์ที่เหมาะสมให้กับไดเร็กทอรี โดยให้สิทธิ์ทั้งหมดแก่ผู้ใช้ที่เข้าสู่ระบบ (อ่าน เขียน และดำเนินการ) และกลุ่มและผู้ใช้รายอื่นมีสิทธิ์อ่านและดำเนินการเท่านั้น

sudo chmod -R 755 /var/www/crazytechgeek.info

ด้วยการกำหนดค่าสิทธิ์ไดเรกทอรีและความเป็นเจ้าของอย่างถูกต้อง เราจำเป็นต้องสร้างหน้าเว็บตัวอย่างสำหรับโดเมน

ขั้นตอนที่ 2: สร้างหน้าตัวอย่างสำหรับโดเมน

ในขั้นตอนนี้ เราจะสร้างไฟล์ index.html เพื่อการทดสอบ ไฟล์นี้จะให้บริการเนื้อหาที่จะแสดงบนเว็บเบราว์เซอร์เมื่อมีการเรียกโดเมนบนเบราว์เซอร์

sudo vim /var/www/crazytechgeek.info/html/index.html

วางเนื้อหา HTML ต่อไปนี้

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
  <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

บันทึกและออกจากไฟล์การกำหนดค่า

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

บล็อกเซิร์ฟเวอร์ Nginx อยู่ในไดเร็กทอรี /etc/nginx/sites-available บล็อกเซิร์ฟเวอร์ Nginx เริ่มต้นคือ /etc/nginx/sites-available/default ซึ่งให้บริการไฟล์ HTML เริ่มต้นที่ /var/www/html/index.nginx-debian.html .

ในกรณีของเรา เราจำเป็นต้องสร้างบล็อกเซิร์ฟเวอร์ที่จะให้บริการเนื้อหาในไฟล์ index.html ที่เราสร้างไว้ก่อนหน้านี้

ดังนั้นให้สร้างไฟล์บล็อกเซิร์ฟเวอร์ที่แสดง

sudo vim /etc/nginx/sites-available/crazytechgeek.info

วางเนื้อหาด้านล่าง:

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

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info www.crazytechgeek.info;

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

		
    access_log /var/log/nginx/crazytechgeek.info.access.log;
    error_log /var/log/nginx/crazytechgeek.info.error.log;

}

บันทึกและออกจากไฟล์.

ขั้นตอนที่ 4: เปิดใช้งาน Nginx Server Block ใน Ubuntu

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

sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

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

sudo nginx -t

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

สุดท้าย ให้รีสตาร์ท Nginx เพื่อให้การเปลี่ยนแปลงที่ทำกับไฟล์การกำหนดค่ามีผล

sudo systemctl restart Nginx

จากนั้นตรวจสอบว่า Nginx ทำงานอยู่หรือไม่โดยรันคำสั่งที่แสดง:

sudo systemctl status Nginx

ขั้นตอนที่ 5: ทดสอบ Nginx Server Block ใน Ubuntu

เพื่อยืนยันว่าบล็อกเซิร์ฟเวอร์ทำงานตามที่คาดไว้และให้บริการเนื้อหาในไดเร็กทอรี /var/www/crazytechgeek.info ให้เปิดเว็บเบราว์เซอร์และเรียกดูชื่อโดเมนเซิร์ฟเวอร์ของคุณ:

http://domain-name

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

บทสรุป

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