It's very common to use nginx on port 80, and then define servers (vhosts) within nginx with a reverse proxy to your node servers. The reason it's so common is because nginx is exceptional at serving static content, so you let it do just that by telling it your public directory location.
Here's an example of a server (vhost) config. You would create one server { }
block, and change the server_name for each vhost:
server {
listen 80;
server_name website.com;
location / {
proxy_pass http://127.0.0.1:3001;
}
location ~* ^.+\.(jpg|png|gif|woff|ico|map|js|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|flv|swf|html|htm)$ {
root /home/empurium/code/davinci/public;
}
}