One misconception I often come across with clients that are new to hosting and for some reason want to host on IIS Web server is that they need an IP address for each website. This is not true as IIS is just as capable of Virtual Sites as for example Apache or NginX.
The secret is in the binding……
IIS Site Bindings
Site bindings are what IIS uses to “glue” a website url to both a directory location and an IP/Port address. What is not so obvious at first glance is that the IP address may be set to the SAME ip for each site or else set to a wildcard (ANY AVAILABLE). This works well if your server/VPS has only one IP address.
Here is the step by step to set this up for an IIS website
- Open Internet Information Services (IIS) Manager.
- In the Connections pane, expand the Sites node in the tree, and then click to select the site for which you want to add a binding.
- Click Bindings in the Actions pane.
- Enter the following information in the “Add Site Binding” window:
Type In the drop-down list, select https.
IP address In the drop-down list, select All Unassigned.
Port Enter 443 / 80 for non-SSL.
Hostname Enter your website’s DNS name (e.g. website1.domain.com).
Require Server Name Indication Do not check this check box; not required.
SSL certificate (if needed) In the drop-down list, select the SSL Certificate by its friendly name (*YourCertificateFriendlyName).
- Click OK.
The host headers should now be properly configured for that website.
Repeat these steps as needed for all sites to which you want to assign host headers.
Note: In step 5, change the hostname to match the website’s DNS name each time.
You can verify the changes by opening each site in a web browser. IIS is not hard to manage for normal websites. Where it can get tricky is with dynamic content and database integration. Here the Microsoft licensing structure can end up costing a small fortune and this is the point at which you must decide to either pay up or start using alternatives such as MySQL databases which also work with IIS and ASP.NET. You can, of course, install what is known as a WAMP stack (Windows-Apache-MySQL-PHP) but that is beyond this article scope.
Keep you windows updated and patched and it should last well.