Phục vụ file tĩnh của tên miền qua Nginx trên máy chủ VPS
Để phục vụ các file tĩnh trên NodeJS hoặc trên Express, người ta tạo một máy chủ static. Trên thực tế, làm như vậy không được khuyến khích, vì nó hoạt động chậm.
Tối ưu hơn là phục vụ file tĩnh
qua Nginx. Để làm điều này, cần có một cấu hình
đặc biệt cho tên miền,
chứa biểu thức chính quy và đường dẫn tới
thư mục chứa file tĩnh. Giả sử ví dụ
trong tên miền của chúng ta, thư mục chứa file tĩnh
sẽ là thư mục public.
Trong trường hợp này, chúng ta sẽ viết
cấu hình sau:
server_name test1.com;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf|txt|ico)$ {
root /var/www/test1.com/public;
}
Điều không thuận tiện là tên tên miền chúng ta phải viết hai lần, nếu tên này trùng với tên thư mục của site (và vì thuận tiện, chúng ta đặt trùng nhau). Vấn đề có thể được giải quyết theo cách sau:
server_name test1.com;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf|txt|ico)$ {
root /var/www/$server_name/public;
}
Hãy tổng hợp tất cả các cấu hình của chúng ta lại và nhận được kết quả sau:
server {
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;
}
}
Hãy cấu hình việc phục vụ file tĩnh cho cả hai site thử nghiệm. Kiểm tra nó qua trình duyệt.