Possiamo usare nginx per gestire le risorse statiche delle nostre app in Node.js.
All'interno della nostra app la directory public contiene le nostre risorse statiche:
/home
/username
/app
/public
/www
Definiamo le regole di nginx specificando come document root la directory www. nginx opererà come reverse proxy della nostra app in ascolto sulla porta 3000.
upstream backend {
server 127.0.0.1:3000;
}
server {
server_name app.test;
listen 80;
root /home/username/www;
index index.html;
location / {
try_files $uri @backend;
}
location @backend {
proxy_pass http://backend;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
A questo punto per permettere ad nginx di servire le nostre risorse statiche creiamo un link simbolico della directory public nella directory www:
ln -s /home/username/app/public /home/username/www/public
Ora le route verranno gestite dalla nostra app, mentre le risorse statiche verranno servite da nginx.