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

ตั้งค่าบล็อกเซิร์ฟเวอร์ Nginx (โฮสต์เสมือน) บน CentOS/RHEL 8


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

ในบทความนี้ คุณจะได้เรียนรู้วิธีตั้งค่าบล็อกเซิร์ฟเวอร์ Nginx (โฮสต์เสมือน) บน CentOS 8 และ RHEL 8 Linux

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

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

มาเริ่มกันเลย!

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

ทันที คุณจะต้องสร้างไดเร็กทอรีรูทเว็บแบบกำหนดเองสำหรับโดเมนที่คุณต้องการโฮสต์ ในกรณีของเรา เราจะสร้างไดเร็กทอรีตามที่แสดงโดยใช้ตัวเลือก mkdir -p เพื่อสร้างไดเร็กทอรีหลักที่จำเป็นทั้งหมด:

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/html

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

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

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

ภายในไฟล์ ให้วางเนื้อหาตัวอย่างต่อไปนี้

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
  <h1>Awesome! Your Nginx server block is working!</h1>
    </body>
</html>

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

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

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

sudo vim /etc/nginx/conf.d/crazytechgeek.info.conf

จากนั้นวางการกำหนดค่าที่ปรากฏด้านล่าง

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;

}

เมื่อเสร็จแล้ว ให้บันทึกการเปลี่ยนแปลงและออกจากไฟล์การกำหนดค่า เพื่อยืนยันว่าการกำหนดค่า Nginx ทั้งหมดนั้นเสียงและปราศจากข้อผิดพลาด ให้ดำเนินการคำสั่ง:

sudo nginx -t

ผลลัพธ์ด้านล่างควรเป็นการยืนยันว่าคุณพร้อมแล้ว!

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

sudo systemctl restart nginx
sudo systemctl status nginx

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

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

ในการดำเนินการนี้ เพียงเปิดเบราว์เซอร์ของคุณและไปที่โดเมนเซิร์ฟเวอร์ของคุณดังที่แสดง:

http://domain-name

ตามที่สังเกต เนื้อหาของเรากำลังให้บริการโดยบล็อกเซิร์ฟเวอร์ ซึ่งเป็นข้อบ่งชี้ที่ชัดเจนว่าทุกอย่างเป็นไปด้วยดี

ขั้นตอนที่ 5: เปิดใช้งาน HTTPS บนโดเมนที่โฮสต์บน Nginx

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

sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx

เพื่อยืนยันว่าโดเมนของคุณได้รับการกำหนดค่าอย่างถูกต้องบน HTTPS โปรดไปที่ https://yourwebsite.com/ ในเบราว์เซอร์ของคุณ และมองหาไอคอนแม่กุญแจในแถบ URL

บทสรุป

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