Pues tienes dos opciones, o configuras la app para que escuche por el puerto 80 o usas un reverse proxy.
Normalmente si tu app va a ser la unica app en todo el servidor entonces usa el 80, pero esto quiere decir que no podrás tener mas apps funcionando.
Para evitar esto lo que se hace es instalar apache o el servidor http que desees y debes configurar un reverse proxy, ¿que significa?, significa que tu apache correrá en el puerto 80 y tu app en el 8080, pero tu servidor http va a tener una configuración para que el usuario cuando ingrese a
http://demo.com/ el servidor web vaya a consultar por debajo a tu app con node, es como crear un puente, el usuario consulta al servidor, el servidor consulta a la app al puerto 8080 y tu app le responderá al servidor y el servidor al usuario.
¿Cómo se logra esto?, acá algunos tutoriales:
http://stackoverflow.com/questions/14259321/apache-node-js-mod-proxy-how-to-route-one-domain-to-3000-and-another-to-8http://www.codingtricks.biz/run-nodejs-application-apache/https://www.digitalocean.com/community/questions/how-to-run-nodejs-with-apache-for-ubuntu-12-04¿Cómo seguir buscando?, en google por "Nodejs + apache reverse proxy"
Ahora, también hay una tercera opción pero es mas compleja y necesita mas conocimientos y es usando Phusion Passenger:
https://github.com/phusion/passenger/wiki/Phusion-Passenger:-Node.js-tutorialhttps://www.phusionpassenger.com/library/walkthroughs/deploy/nodejs/https://www.phusionpassenger.com/library/walkthroughs/basics/nodejs/fundamental_concepts.htmlLo que hace esto es crear un puente de tipo CGI entre apache y node tal como se logra con apache + php pero este driver hace posible cargar la ejecución de varios lenguajes de programación dentro del mismo módulo (passenger) tales como: nodejs y ruby on rails, yo lo uso para publicar apps en rails pero no es muy cómodo, especialmente cuando debes instalar algunas dependencias desde rvm (administrador de versiones de rails) y no desde el repositorio del sistema operativo, pero no se si será igual en node.
De todas las alternativas te recomiendo hacer lo del reverse proxy, es lo que la gran mayoría hace, es cómodo y sirve para múltiples proyectos a futuro sin tener que realizar instalaciones especiales por proyecto.
Ahora, hay una cuarta opción pero es aun mas compleja xD y es usando contenedores LXD o Docker y desde ahi publicar con el reverse proxy con apache, pero ahi si necesitas mas conocimientos. De todas maneras si te interesa:
https://nodejs.org/en/docs/guides/nodejs-docker-webapp/https://www.npmjs.com/package/node-lxdhttp://www.infoworld.com/article/2843865/virtualization/canonicals-lxd-turns-docker-into-vm.htmlSaludos.