I have deployed my nodejs app on a VPS(ubuntu 10.04). I have hosted it on a subdomain (subdomain.myapp.com:3000) and I just have one IP address
By default port 80 is been used by apache as default. I just want that my app should run on port 3000 but URL should be (subdomain.myapp.com)
Is this possible in nodejs or do I have to tweak my virtual host or apache's files.
Yes it is possible
In your apache virtual host file configure with the following
<VirtualHost *:80> ServerName subdomain.myapp.com ProxyRequests off <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ProxyPreserveHost on </VirtualHost>
You should have
on top of your file and also Proxy module installed for apache ( I think it is a default configuration for ubuntu )
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
it must be in your httpd.conf file
then you should restart apache and it must be fine!