When it comes to cPanel, tasks that would normally be relatively simple on a server running Apache or NGINX become more of a headache as cPanel doesn’t currently support NodeJS. Installation on a cPanel server would most likely void any support from their team as well.
The post below was updated 8 months ago stating that it’s on their radar, not their roadmap.
So what can you do? Well, you could install NGINX in front of Apache using Engintron. NGINX would act as a reverse proxy to Apache. As long as you can modify server blocks, you could turn the block created for each site in to a reverse proxy for the NodeJS app. This, again, however, would not be supported by cPanel and may also void support from their team because it’s not stock.
The above script would be install at your own risk. Since you have over 100 domains on the server, I would highly recommend testing the above on a non-production server first.
Since cPanel won’t provide support for third-party modifications, you’d be on your own if something screws up.
If you need to run NodeJS, you’d be far better off deploying a Droplet here at DigitalOcean and then installing NGINX + NodeJS on the Droplet and skip Apache altogether. It’s far easier to do a simple setup than it would be to modify an existing production cPanel server – you’re also mitigating risk.
Running NGINX as a reverse proxy to NodeJS apps is really simple and takes very little time to get up and running. You’d simply install NodeJS, make sure your apps are responding on the port they should be and then you could setup the proxy with NGINX and boom, no port in the URL.
Setting up SSL on NGINX is also pretty simple. The longest part of the process is really generating the certificates – more so if you don’t use LetsEncrypt, but if you do, then it’s pretty quick altogether.