Niraj Niraj - 29 days ago 14
Node.js Question

nodejs domain without port number

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.

Answer

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

NameVirtualHost *:80

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!

Comments