บทนำ
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 จะตั้งค่ากำหนดค่าใหม่
