Install the following:
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ service apache2 restart
Navigate to /etc/apache2/sites-available/
$ touch <YOUR DOMAIN NAME>.conf
Now add following into /etc/apache2/sites-available/
<VirtualHost *:80>
ServerName <YOUR DOMAIN NAME>
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
Require all granted
</Proxy>
<Location />
ProxyPass http://localhost:<YOUR PORT>/
ProxyPassReverse http://127.0.0.1:<YOUR PORT>
</Location>
</VirtualHost>
Enable the site
$ sudo a2ensite <YOUR DOMAIN NAME>.conf
Add domain to host
$ sudo gedit /etc/hosts
127.0.0.1 <YOUR DOMAIN NAME>
Restart apache server
$ sudo service apache2 reload
Navigate to your nodejs app
$ cd ~/path/to/your/nodeapp/app.js
Add following in the app.js file:
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Node.js is running from site1.\n');
}).listen(8080);
console.log('Server running at http://127.0.0.1:8080/');
Goto the terminal, and type
$ cd ~/path/to/your/nodeapp/
$ node app.js
In browser type
<YOUR DOMAIN NAME>