Consider your options
The usual licensing strategy for server software is to lock it to a physical host. This provides some degree of protection from installing and running on multiple hosts, but it does not necessarily represent the optimal approach in terms of maximizing your revenue or customer satisfaction.
First, there’s the notion of scaling. Do you really want to charge the same price for every site? You need some way to charge more when your software is used more. Perhaps you can sell multiple node locked servers to larger sites, or even charge relative to the number of cores on the machines, the rationale being that there is the potential to get more use from machines with more horsepower.
Float your server licenses
If you want your customers to have the flexibility of installing and using your server on many machines without having to license them separately, perhaps you should use a floating license manager that ensures that no more than a predetermined number of concurrent server copies can run at the same time. With floating licensing, you issue a license key with a count, and lock only the license server, not each user node.
Another approach could be licensing by some other scaled metric: how many records can be maintained in the database, a count of named users, etc. Each of these metrics can be encoded into a license key, allowing the server software to know when it starts what level of service to enforce based on the license key scaling parameters. A single version of your software could then enforce the appropriate size limits on a site by site basis.
Using a license manager, such as RLM, could also give you even more control of how your software behaves within a virtual machine. You could even license by platform or by the site’s timezone.
In any case, using a license manager gives you the freedom to change with your license policies.