ตั้งค่าบล็อกเซิร์ฟเวอร์ 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 สำเร็จแล้ว คุณสามารถทำซ้ำแบบเดียวกันสำหรับหลายโดเมนโดยใช้ขั้นตอนเดียวกัน