Running a basic IIS web server Stay organized with collections Save and categorize content based on your preferences.
You can control a virtual machine (VM) instance on Compute Engine like anystandard Windows server. This tutorial shows you how to deploy a simple IIS webserver so you can learn the basics of running a web server on a VM.
Before you begin
You'll need a new Windows instance with HTTP traffic allowed.
- Follow theQuickstart instructions tocreate a new Windows instance and connect to it with RDP.
Install IIS
On the Windows taskbar, in the search field, type
PowerShelland thenpressEnter. If there is no search field on the taskbar, click the searchicon, typePowerShell, and then pressEnter. If neither the search fieldnor the search icon appear on the taskbar, seeHide and unhide your searchbox in Windows.In the search results, underApps, right-clickWindows PowerShell,and chooseRun as administrator.
Install IIS services with the following commands:
import-module servermanager
add-windowsfeature web-server -includeallsubfeature
Overwrite the IIS web server default web page with the following command:
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' > C:\inetpub\wwwroot\index.html
Test your server
Test that your instance is serving traffic on its external IP:
In the Google Cloud console, go to theVM instances page.
View the
Hello World!page by copying the IP address from theExternalIP column and pasting it into a new browser tab. If you do not see theHelloWorld!page, follow theTroubleshooting steps.
Clean up
When you're done experimenting, follow the clean up instructions in theQuickstart to avoid incurringcharges for this instance.
Troubleshooting
Receiving aConnection Refused error
If you are seeing aConnection Refused error, it is possible that:
Your VM instance is not publicly accessible because your firewall rules ortags are misconfigured in one of the following ways:
- The VM instance does not have the proper tag that allows Compute Engineto apply the appropriate firewall rules to your instance.
- Your project does not have a firewall rule that allows traffic to theexternal IP address for your instance.
You are trying to access the VM using an
httpsaddress. Check that yourURL ishttp://[EXTERNAL_IP]rather thanhttps://[EXTERNAL_IP].
To ensure that your VM instance has the correct tags:
- In the Google Cloud console, go to theVM instances page.
- Click the name of the instance that you are trying to connect to.
- ClickEdit at the top of the page.
- Scroll down toFirewalls, and make sure theAllow HTTP traffic boxis checked. If it is not checked, check it.
- Save your changes. This ensures that the correct tags are added to theVM instance.
To ensure that the correct firewall rule exists:
- In the Google Cloud console, go to theFirewall rules page.
- Look for a firewall rule that allows all IP ranges through tcp:80. Usually,this rule is named the
default-allow-httprule. - If a rule does not exist, create one.
- ClickCreate firewall rule.
- Enter a name for the rule, such as
default-allow-http. - UnderSource IP ranges, enter
0.0.0.0/0to allow traffic fromall sources. - UnderProtocols and ports, checkSpecified protocols and portsand enter
tcp:80. - Create your firewall rule.
Test your server again by going to the external IP address of the instance:
http://[EXTERNAL_IP]Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-12-15 UTC.