How to use React JS and Node JS App without Port

How to use React JS and Node JS App without Port

Forward [ProxyPass] port to a custom domain

If your application is on Node JS, you must be aware of using the port for your application. Node JS need to be an open port on your system.

As if you are developing an application and your application is on a staging platform, Its good to have port after your domain or port. like http://localhost:3000. But when your application is going to be live on production. then for user interface or any other requirements, you don’t want to have that port after domain name or IP Address.

Here a small change in your server file can achieve things get done.

Let's see you are running application on port 3000.

Now upload your application on hosting server. Now you can access your application via IP address. e.g. IP_ADDRESS:3000.

Create the First Virtual Host File Start by copying the file for the first domain on your terminal (SSH)

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/yourdomain.com.conf

Open the new file in your editor with root privileges:

sudo nano /etc/apache2/sites-available/yourdomain.com.conf

Delete everything in it, and paste the following after changing your domain name.

<VirtualHost \*:80>
 ProxyPreserveHost On
 ProxyRequests Off
 ServerName mydomain.com
 ServerAlias www.mydomain.com
 ProxyPass / http://localhost:3000/
 ProxyPassReverse / http://localhost:3000/
</VirtualHost>

Now run following command to activate proxy and restart apache.

sudo a2enmod proxy && sudo a2enmod proxy_http && sudo service apache2 restart

Update: If you are doing for a custom subdomain, then you need to point the subdomain to the IP Address.

happy coding :)