วิธีใช้ CentOS รองรับหลายโดเมน (หลายเว็บไซต์) พร้อมกัน


1. ใช้ Apache HTTP Server (httpd) แบบ Virtual Hosts

ถ้าคุณใช้ Apache เป็นเว็บเซิร์ฟเวอร์ สามารถตั้งค่า Virtual Hosts เพื่อรองรับหลายโดเมนบนเครื่องเดียวได้ เช่น

ติดตั้ง Apache (ถ้ายังไม่มี)

sudo yum install httpd
sudo systemctl start httpd
sudo systemctl enable httpd

สร้างไฟล์ Virtual Host สำหรับแต่ละโดเมนใน /etc/httpd/conf.d/
เช่น /etc/httpd/conf.d/domain1.conf:

<VirtualHost *:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    DocumentRoot /var/www/domain1
    ErrorLog /var/log/httpd/domain1-error.log
    CustomLog /var/log/httpd/domain1-access.log combined
</VirtualHost>

และสำหรับ domain2 ก็สร้างไฟล์คล้ายกัน

สร้างโฟลเดอร์เว็บสำหรับแต่ละโดเมน เช่น

mkdir -p /var/www/domain1
mkdir -p /var/www/domain2

รีสตาร์ท Apache

sudo systemctl restart httpd

2. ใช้ Nginx แบบ Server Blocks (Virtual Hosts ของ Nginx)

ถ้าใช้ Nginx ก็จะใช้แนวคิดเดียวกัน

ติดตั้ง Nginx

sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx

สร้างไฟล์ config ของแต่ละโดเมนใน /etc/nginx/conf.d/domain1.conf

server {
    listen 80;
    server_name domain1.com www.domain1.com;

    root /usr/share/nginx/domain1;
    index index.html index.htm;

    access_log /var/log/nginx/domain1-access.log;
    error_log /var/log/nginx/domain1-error.log;
}

สร้างโฟลเดอร์เว็บ

mkdir -p /usr/share/nginx/domain1

รีสตาร์ท nginx

sudo systemctl restart nginx

หมายเหตุ

  • ต้องชี้ DNS ของโดเมนไปที่ IP ของเครื่อง CentOS นี้ด้วย
  • หากใช้ SSL (https) จะต้องตั้งค่า cert สำหรับแต่ละโดเมน เช่น ใช้ Let’s Encrypt
  • สามารถรันเว็บแอป หรือ service อื่นๆ บนพอร์ตต่างๆ แล้วทำ reverse proxy ผ่าน Apache หรือ Nginx ได้
,