Archivos estáticos del dominio a través de Nginx en un servidor VPS
Para servir archivos estáticos en NodeJS o en Express, se crea un servidor estático. En realidad, no se recomienda hacerlo de esta manera, ya que funciona lentamente.
Es más óptimo servir los archivos estáticos
a través de Nginx. Para ello, se realiza una
configuración especial para el dominio,
que contiene una expresión regular y la ruta a
la carpeta con los archivos estáticos. Supongamos, por ejemplo,
que en nuestro dominio la carpeta con archivos estáticos
sea la carpeta public.
En este caso, configuraremos
lo siguiente:
server_name test1.com;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf|txt|ico)$ {
root /var/www/test1.com/public;
}
Resulta un poco inconveniente que el nombre del dominio debamos escribirlo dos veces, si este nombre coincide con la carpeta del sitio (y para nuestra conveniencia coincide). El problema se puede resolver de la siguiente manera:
server_name test1.com;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf|txt|ico)$ {
root /var/www/$server_name/public;
}
Reunamos todas nuestras configuraciones y obtendremos lo siguiente:
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;
}
}
Configure el servicio de archivos estáticos para ambos sitios web de prueba. Pruébelo a través del navegador.