Skip to content

Commit ef17bf3

Browse files
authored
Merge pull request #53949 from MicrosoftDocs/NEW-deploy-internet-information-services
New deploy internet information services
2 parents 42a492f + 188d605 commit ef17bf3

17 files changed

Lines changed: 280 additions & 0 deletions
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.devrel.deploy-configure-internet-information-services.introduction-internet-information-windows-server
3+
title: Introduction to Internet Information Services on Windows Server
4+
metadata:
5+
title: Introduction to Internet Information Services on Windows Server
6+
description: In this unit, you'll be introduced to Internet Information Services (IIS) on Windows Server. You learn about the architecture of IIS, its components, and the benefits of using IIS as a web server for hosting websites and web applications.
7+
ms.date: 03/23/2026
8+
author: Orin-Thomas
9+
ms.author: orthomas
10+
ms.topic: unit
11+
durationInMinutes: 4
12+
content: |
13+
[!include[](includes/1-introduction-internet-information-windows-server.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.devrel.deploy-configure-internet-information-services.install-web-server-role
3+
title: Installing the Internet Information Services web server role
4+
metadata:
5+
title: Installing the Internet Information Services Web Server role
6+
description: Learn how to install the Internet Information Services (IIS) web server role on Windows Server using both the graphical user interface (GUI) and PowerShell command-line interface.
7+
ms.date: 03/23/2026
8+
author: Orin-Thomas
9+
ms.author: orthomas
10+
ms.topic: unit
11+
durationInMinutes: 5
12+
content: |
13+
[!include[](includes/2-install-web-server-role.md)]
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.devrel.deploy-configure-internet-information-services.initial-configure-validate
3+
title: Initial configuration and validation
4+
metadata:
5+
title: Initial Configuration and Validation
6+
description: In this unit, you perform the initial configuration of your web server and validate that the installation was successful. You learn how to use the IIS Manager console to perform basic configuration tasks, such as creating a new website and configuring its settings.
7+
ms.date: 03/23/2026
8+
author: Orin-Thomas
9+
ms.author: orthomas
10+
ms.topic: unit
11+
durationInMinutes: 7
12+
content: |
13+
[!include[](includes/3-initial-configure-validate.md)]
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.devrel.deploy-configure-internet-information-services.knowledge-check
3+
title: Knowledge check
4+
metadata:
5+
title: Knowledge Check
6+
description: Check your knowledge.
7+
ms.date: 03/23/2026
8+
author: Orin-Thomas
9+
ms.author: orthomas
10+
ms.topic: unit
11+
durationInMinutes: 3
12+
content: |
13+
quiz:
14+
title: Check your knowledge
15+
questions:
16+
- content: Where is the content root of the Default Web Site on a new IIS installation?
17+
choices:
18+
- content: C:\wwwroot\
19+
isCorrect: false
20+
explanation: Incorrect. This path doesn't exist by default; the correct path includes the "inetpub" directory.
21+
- content: C:\inetpub\wwwroot\
22+
isCorrect: true
23+
explanation: Correct! The Default Web Site's content root is C:\inetpub\wwwroot, where the default welcome file iisstart.htm is located.
24+
- content: "%SystemDrive%\\Web\\Default Site\\"
25+
isCorrect: false
26+
explanation: Incorrect. This is not a valid default IIS path.
27+
- content: C:\Program Files\IIS\Default\
28+
isCorrect: false
29+
explanation: Incorrect. IIS doesn't store website content under Program Files.
30+
- content: Which of the following is one of the default document file names for IIS?
31+
choices:
32+
- content: Default.js
33+
isCorrect: false
34+
explanation: Incorrect. Default.js isn't in the IIS default document list.
35+
- content: index.md
36+
isCorrect: false
37+
explanation: Incorrect. index.md isn't in the IIS default document list.
38+
- content: home.aspx
39+
isCorrect: false
40+
explanation: Incorrect. home.aspx isn't in the default IIS document list.
41+
- content: iisstart.htm
42+
isCorrect: true
43+
explanation: Correct! iisstart.htm is in the IIS default document list.
44+
- content: Which firewall port must be open to allow users to access a website on HTTP, and which additional port is needed for HTTPS?
45+
choices:
46+
- content: Port 80 for HTTP, and port 443 for HTTPS
47+
isCorrect: true
48+
explanation: Correct! Port 80 is the standard HTTP port; port 443 is the standard HTTPS port. Both must be open for users to access IIS-hosted websites.
49+
- content: Port 443 for HTTP, and port 80 for HTTPS
50+
isCorrect: false
51+
explanation: Incorrect. These are reversed. Port 80 is HTTP, port 443 is HTTPS.
52+
- content: Port 25 for HTTP, and port 110 for HTTPS
53+
isCorrect: false
54+
explanation: Incorrect. Port 25 is SMTP email; port 110 is POP3 email. Neither is used for web hosting.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
### YamlMime:ModuleUnit
2+
uid: learn.devrel.deploy-configure-internet-information-services.summary
3+
title: Summary
4+
metadata:
5+
title: Summary
6+
description: Module summary and key takeaways.
7+
ms.date: 03/23/2026
8+
author: Orin-Thomas
9+
ms.author: orthomas
10+
ms.topic: unit
11+
durationInMinutes: 2
12+
content: |
13+
[!include[](includes/5-summary.md)]
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Windows Server includes IIS (Internet Information Services) version 10.0 as the built-in web server role. IIS isn't installed by default in a fresh Windows Server 2025 installation. You can add it via Server Manager or PowerShell. IIS 10 is available in all supported versions of Windows Server and Windows Client.
2+
3+
IIS uses a modular hierarchical architecture. The main architectural components are:
4+
5+
- **Web Sites**. Top-level containers that represent individual websites hosted on the server. Each site is identified by a unique combination of host name, port, and IP address and has its own folder path for content. By default, when IIS is installed, it creates a "Default Web Site", which listens on HTTP port 80 and serves content the %SystemDrive%\inetpub\wwwroot folder.
6+
- **Applications**. An application in IIS is a subset of a site that runs as a distinct unit. Applications are configured starting at a virtual directory and have their own settings or even a separate application pool. For example, under one site you might have a "/Blog" application that has its own configuration or credentials.
7+
- **Virtual Directories**. A virtual directory is a logical directory name within a site or application that maps to a physical folder on disk. This folder can be outside the site's root folder. Virtual directories let you publish content or files in IIS from different file system locations under a single site structure. They appear as normal subfolders to users.
8+
- **Application Pools**. An application pool is the worker process environment in which one or more sites/applications run. Application pools provide isolation—each pool runs in its own sandboxed worker process named w3wp.exe. This means that problems in one site won't impact other sites hosted on the same server. By default, IIS puts the "Default Web Site" into a default application pool (DefaultAppPool). You should create additional application pools to isolate different applications or sites. Key settings of app pools include the .NET CLR version for ASP.NET apps, pipeline mode, and various recycling settings for stability. Each website in IIS can be assigned to a different application pool.
9+
- **Modules**. Modules are components that handle specific request-processing tasks including authentication, compression, and URL rewriting. IIS's modular architecture means you can add or remove modules depending on the features you need.
10+
11+
These components function as follows:
12+
13+
1. When a request arrives, IIS determines which site it's for by matching the host header, port, and IP to a site binding.
14+
1. Within that site, it looks at the URL path to see if it corresponds to an application or virtual directory with distinct settings, then maps the request to a physical folder.
15+
1. The request is executed using the application pool associated with that site/application, which loads the necessary modules to handle things like authentication, authorization, serving content or executing application code, and sending the response.
16+
17+
[![A diagram showing IIS architecture functions with incoming requests.](../media/internet-information-services-architecture.png)](../media/internet-information-services-architecture.png#lightbox)
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
On a computer configured as Windows Server 2025 with Desktop Experience, you can install IIS using the Add Roles and Features Wizard:
2+
3+
1. In Server Manager's dashboard, select "Add Roles and Features." This opens the Add Roles and Features Wizard.
4+
1. In the wizard's Before you begin page, select Next. Choose "Role-based or feature-based installation," then select your server. Continue to the Server Roles step.
5+
1. In the list of roles, find and check "Web Server (IIS)". If this is the first time installing IIS, a pop-up appears to add associated features. Select "Add Features" when prompted to include IIS Management Console and other required components. After that, the "Web Server (IIS)" role should be checked.
6+
[![A screenshot showing selection of the Web Server role.](../media/server-manager-install.png)](../media/server-manager-install.png#lightbox)
7+
1. Select Next to go through features until you reach the Role Services page. This list displays subcomponents like Common HTTP Features, Security, and Performance. By default, essential services are preselected. You can optionally select additional services or add them later as required. [![A screenshot showing selection Web Server role services.](../media/server-manager-roles.png)](../media/server-manager-roles.png#lightbox)
8+
1. Complete the wizard and then select Install on the confirmation page. The installation proceeds and when it completes, you'll see an "Installation succeeded" message.
9+
10+
> [!NOTE]
11+
> By default, installing IIS through the wizard enables the Default Web Site on port 80. If you want to quickly verify that IIS works, you can open a web browser on the server and navigate to http://localhost. You should be greeted by the IIS welcome page, indicating the web server is running.
12+
13+
## PowerShell installation
14+
15+
To install IIS via PowerShell in Windows Server, use the Install-WindowsFeature cmdlet from an elevated command prompt:
16+
17+
```powershell
18+
Install-WindowsFeature Web-Server -IncludeManagementTools
19+
```
20+
21+
You can install specific IIS subcomponents by name using PowerShell. For example, to install IIS with some common features, you might specify component names like Web-WebSockets or Web-Dyn-Compression. You can see the available web server features by running the command:
22+
23+
```powershell
24+
Get-WindowsFeature -Name Web*
25+
```
26+
27+
You can determine which IIS features are installed by running the command:
28+
29+
```powershell
30+
Get-WindowsFeature -Name Web* | Where Installed
31+
```
32+
33+
## IIS on Server Core
34+
35+
Server Core is the minimal, GUI-less installation option for Windows Server. The Server Core installation option is appropriate for workloads like IIS as the minimal number of components reduces the server's attack surface. You can deploy IIS on Server Core, but you can't use the local IIS Manager application. You can install IIS on Server Core using PowerShell using Install-WindowsFeature or remotely using Server Manager.
36+
37+
To enable remote management, you need to install the Web Management Service (WMSVC). You can do this by running the following command:
38+
39+
```powershell
40+
Install-WindowsFeature -Name Web-Mgmt-Service
41+
```
42+
43+
You enable remote management by configuring the registry. You can do this with the following command:
44+
45+
```powershell
46+
Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1
47+
```
48+
49+
You can then configure the service to start automatically by running the command:
50+
51+
```powershell
52+
Set-Service -Name WMSVC -StartupType Automatic
53+
```
54+
55+
You have to allow inbound management traffic to the service. You can do this using the following command, restricting incoming management traffic to a designated management subnet (here it's 192.168.15.0/24):
56+
57+
```powershell
58+
New-NetFirewallRule -DisplayName "IIS Remote Management" -Direction Inbound -Action Allow -Service WMSVC -RemoteAddress 192.168.15.0/24
59+
```
60+
61+
Once WMSVC is running and listening, you can open IIS Manager on a different Windows machine and use the "Connect to a Server" option and enter the hostname (or IP) of your Server Core machine. You'll typically authenticate with an account that has local administrator privileges on the server hosting IIS.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
The deployment of the web server role creates a web site named Default Web Site. This site uses the path C:\inetpub\wwwroot as its content root and listens on port 80 (http) on all IP addresses configured for the server. The Default Web Site also has an empty host name binding, which means it responds to any host name on that server's IP. This continues to occur unless you configure an additional site, specifying a host name, for the same port.
2+
3+
You can verify that the default web site is present by navigating to http://localhost using the local browser, or by navigating to the server's IP address or DNS name using a web browser on a remote host.
4+
You can also test that the website is present using the Invoke-WebRequest PowerShell command.
5+
6+
```powershell
7+
Invoke-WebRequest -Uri "http://localhost/"
8+
```
9+
10+
## Exploring the IIS Manager Interface
11+
12+
IIS Manager (inetmgr.exe) is the graphical tool for managing IIS. On launch, you see a window with a tree on the left. Select the server node to expand it. Under it, you see subnodes for Application Pools and Sites. If you expand Sites, you see Default Web Site listed.
13+
14+
[![A screenshot showing IIS Manager console.](../media/iis-manager.png)](../media/iis-manager.png#lightbox)
15+
16+
When you select the server itself or a site, the middle pane populates with features. These allow you to configure settings such as authentication at the server level, or settings at the level of an individual site level. Settings configured at the site level take precedence over those configured at the server level.
17+
18+
You can determine which IIS features are installed by looking at the Features View for the server. For instance, if "URL Rewrite" is installed, you'd see an icon for it under the IIS section. If Dynamic Content Compression was installed, you'll see a "Compression" icon that includes both static and dynamic compression settings. If you're looking for a setting and it's not present, you might need to install the appropriate web server role service using Server Manager or PowerShell.
19+
20+
## Basic configurations
21+
22+
There are a few basic settings and checks that you should be familiar with before using IIS in a production environment. These include:
23+
24+
- Default documents
25+
- SSL Settings
26+
- HTTP Compression
27+
28+
### Default documents
29+
30+
The default document is the file that IIS serves if a user requests a URL that corresponds to a folder. For example, if a user goes to http://yoursite/ (with no page specified), IIS looks for a default document in that folder. Typical defaults include Default.htm, Default.asp, index.htm, index.html, and iisstart.htm. In IIS Manager, you can configure this at the server or site level by double-selecting Default Document. You see the list of default files. You can add (for example, if your application uses home.aspx as the main page, you could add that), remove, or reorder these entries. The server-level list serves as the default for all sites, but you can override per site.
31+
32+
[![A screenshot showing the Default Document dialog.](../media/default-document.png)](../media/default-document.png#lightbox)
33+
34+
### SSL settings
35+
36+
To configure SSL for a website in IIS, first install or import a server certificate into the Local Computer\Personal certificate store so IIS can use it. Then open IIS Manager, select the website, and choose Bindings from the Actions pane. Add or edit an https binding, set the port to 443, select the appropriate SSL certificate, and enable SNI if the server hosts multiple HTTPS sites on the same IP address.
37+
38+
[![A screenshot showing the Add Site Binding dialog.](../media/contoso-certificate.png)](../media/contoso-certificate.png#lightbox)
39+
40+
After applying the binding, you can use the SSL Settings feature to require SSL for the site or specific content. You can optionally configure an HTTP-to-HTTPS redirect so users will be automatically sent to the secure version of the site.
41+
42+
[![A screenshot showing the SSL Settings dialog.](../media/certificate-settings.png)](../media/certificate-settings.png#lightbox)
43+
44+
### HTTP compression
45+
46+
IIS can compress responses to clients, reducing bandwidth and speeding up web content delivery. There are two types: static compression (for files like HTML, CSS, JS, images) and dynamic compression (for content generated by applications, like ASP.NET or PHP pages). By default, the Static Content Compression feature may already be installed if you accepted recommended defaults, but Dynamic Content Compression might not be.
47+
48+
> [!NOTE]
49+
> On Windows Server, adding the Web Server role typically enables the basic firewall rules for World Wide Web Services (HTTP and HTTPS) on Domain networks (if the server is domain-joined). If your server is standalone or in a workgroup, you may need to manually enable the rules for Public/Private profiles or create new rules for port 80 and 443.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
This module provided a comprehensive introduction to deploying and configuring Internet Information Services (IIS) on Windows Server 2025. You learned how IIS 10.0 integrates as a server role, explored its core architectural components and how to configure basic web site and server settings.
2+
3+
## Learn more
4+
5+
The following Microsoft Learn resources provide additional documentation and reference material for IIS on Windows Server:
6+
7+
- [IIS Documentation Home](/iis/)
8+
- [Introduction to IIS Architecture](/iis/get-started/introduction-to-iis/introduction-to-iis-architecture)
9+
- [Installing IIS on Windows Server](/iis/install/)
10+
- [IIS Configuration Reference](/iis/configuration/)
11+
- [Configure HTTP Compression in IIS](/iis/configuration/system.webserver/httpcompression/)
12+
- [Managing Sites in IIS](/iis/manage/creating-websites/)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
### YamlMime:Module
2+
uid: learn.devrel.deploy-configure-internet-information-services
3+
metadata:
4+
ms.author: orthomas
5+
author: Orin-Thomas
6+
ms.date: 03/23/2026
7+
title: Deploy and Configure Internet Information Services
8+
description: Learn to deploy and configure Internet Information Services on Windows Server.
9+
ms.topic: module
10+
ms.service: windows-server
11+
title: Deploy and configure Internet Information Services
12+
summary: Internet Information Services (IIS) is Windows Server and Client's built-in web server role for hosting websites and web applications. By completing this module, you'll have a solid foundation for configuring, administering, and validating an IIS installation on the latest Windows Server.
13+
abstract: |
14+
In this module you learn:
15+
- The architectural components of IIS
16+
- How to install IIS on Windows Server
17+
- How to configure IIS to host websites
18+
prerequisites: |
19+
- Basic understanding of Windows Server and its roles and features
20+
- Familiarity with web servers and their purpose
21+
iconUrl: /learn/achievements/generic-badge.svg
22+
levels:
23+
- beginner
24+
roles:
25+
- administrator
26+
products:
27+
- windows-server
28+
units:
29+
- learn.devrel.deploy-configure-internet-information-services.introduction-internet-information-windows-server
30+
- learn.devrel.deploy-configure-internet-information-services.install-web-server-role
31+
- learn.devrel.deploy-configure-internet-information-services.initial-configure-validate
32+
- learn.devrel.deploy-configure-internet-information-services.knowledge-check
33+
- learn.devrel.deploy-configure-internet-information-services.summary
34+
badge:
35+
uid: learn.devrel.deploy-configure-internet-information-services-badge

0 commit comments

Comments
 (0)