ติดตั้ง Nginx บน Cloud VPS เป็น Web Server ตัวหลัก

บทนำ

Nginx เป็น Web Server ที่มีประสิทธิภาพสูง เร็ว และเสถียรมาก เหมาะสำหรับการจัดการเว็บไซต์ขนาดใหญ่ และแอปพลิเคชัน บทความนี้จะสอนวิธีติดตั้ง Nginx บน Cloud VPS และตั้งค่า Server Blocks, Firewall, รวมถึงการทดสอบ บน Ubuntu/Debian

Server Blocks คืออะไร

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

ขั้นที่ 1: ติดตั้ง Nginx

เริ่มต้นด้วยการติดตั้ง Nginx บน Ubuntu/Debian โดยรันคำสั่งต่อไปนี้:

sudo apt update
sudo apt install -y nginx

หลังจากติดตั้งเสร็จ ให้เริ่มต้น Nginx และตั้งค่าให้เปิดอัตโนมัติเมื่อบูตระบบ:

sudo systemctl start nginx
sudo systemctl enable nginx

ขั้นที่ 2: เปิด Firewall

ตั้งค่า UFW Firewall (Uncomplicated Firewall) เพื่อให้การเข้าถึง HTTP และ HTTPS:

sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

ตรวจสอบสถานะ Firewall ด้วยคำสั่ง:

sudo ufw status

ขั้นที่ 3: สร้าง Server Block แรก (Virtual Host)

สร้างไฟล์กำหนดค่า Server Block ใหม่สำหรับโดเมนของคุณ:

sudo nano /etc/nginx/sites-available/example.com

วางค่ากำหนดค่าต่อไปนี้ลงในไฟล์:

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html index.php;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }
}

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

สร้างลิงก์สัญลักษณ์จากไฟล์ sites-available ไปยังโฟลเดอร์ sites-enabled:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

ทดสอบไฟล์กำหนดค่าแล้ว Restart Nginx:

sudo nginx -t
sudo systemctl restart nginx

ขั้นที่ 5: ทดสอบ Nginx

เปิดเว็บบราวเซอร์และเข้าไปยัง Public IP ของ VPS เพื่อดูหน้า Default Nginx Page ซึ่งแสดงว่า Nginx ทำงานได้อย่างถูกต้อง

ตั้งค่า SSL Certificate

เพื่อให้เว็บไซต์ของคุณปลอดภัยด้วย HTTPS ให้ติดตั้ง Certbot:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com

Certbot จะขอให้คุณป้อนอีเมลและยอมรับเงื่อนไขการใช้งาน หลังจากนั้น SSL Certificate จะติดตั้งโดยอัตโนมัติและ Nginx จะตั้งค่ากำหนดค่าใหม่