100 dynamic sites each with it's own unique business logic? If the answer is no, then likely you need 1 api server (depending on load and reliability requirements - multiple processes / node.js cluster / nginx/elb balancers) + 100 static sites served by nginx (likely one nginx server for your load)
If it's actually 100 completely unrelated sites my suggestion is to have one server (but multiple processes, at least x number of cores) listening on one port. 100 node processes add too much memory overhead ( ~1-2 gb ).