การส่งไฟล์สแตติกของโดเมนผ่าน Nginx บนเซิร์ฟเวอร์ VPS

การส่งไฟล์สแตติกบน NodeJS หรือบน Express นั้นทำได้โดยใช้ static-server ที่จริงแล้วไม่แนะนำให้ทำแบบนี้ เพราะทำงานได้ช้า

วิธีที่ดีกว่าคือการส่งไฟล์สแตติก ผ่าน Nginx สำหรับสิ่งนี้ โดเมน ต้องมีการตั้งค่าเฉพาะ ซึ่งประกอบด้วย regex และพาธไปยัง โฟลเดอร์ไฟล์สแตติก สมมติว่าในตัวอย่าง โฟลเดอร์ไฟล์สแตติกในโดเมนของเราคือโฟลเดอร์ public ในกรณีนี้เราจะตั้งค่า ดังต่อไปนี้:

confserver_name test1.com;

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf|txt|ico)$ {             
  root /var/www/test1.com/public;
}

ซึ่งค่อนข้างไม่สะดวกที่ชื่อ โดเมนเราต้องเขียนสองครั้ง หากชื่อนั้นตรงกับโฟลเดอร์ของเว็บไซต์ (และเพื่อความสะดวกของเรา มันตรงกัน) ปัญหาสามารถแก้ไขได้ด้วยวิธี ต่อไปนี้:

confserver_name test1.com;

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf|txt|ico)$ {             
  root /var/www/$server_name/public;
}

ลองรวมการตั้งค่าทั้งหมดของเรา เข้าด้วยกันแล้วจะได้ดังนี้:

confserver {
  listen 80;
  server_name test1.com;
  
  location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf|txt|ico)$ {             
    root /var/www/$server_name/public;
  }
  
  location / {
    proxy_pass http://localhost:3001;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
}
Задание 1

ตั้งค่าการส่งไฟล์สแตติกสำหรับ เว็บไซต์ทดสอบทั้งสองไซต์ ทดสอบ ผ่านเบราว์เซอร์