Qu'est-ce qu'IIS ? Le serveur web Windows de Microsoft et ses alternatives
Internet Information Services (IIS) est la plateforme serveur web de Microsoft pour Windows. Elle reçoit les requêtes HTTP et HTTPS et héberge les sites web, les applications web et les API. L'expression « Windows Web » est parfois utilisée de manière informelle pour désigner IIS ; il ne s'agit pas d'un produit serveur Microsoft distinct. Les administrateurs peuvent gérer IIS à l'aide du Gestionnaire IIS (interface graphique), de PowerShell, des outils en ligne de commande et des fichiers de configuration.
Sur Windows Server, IIS est installé en tant que serveur Web (IIS) . Sur les éditions clientes Windows compatibles, il peut être activé en option, généralement pour le développement ou les tests locaux. Les composants disponibles dépendent de l'édition et de la version de Windows ; par conséquent, une configuration pour poste de développement ne doit pas servir de guide pour un déploiement en production.
Un schéma illustré du Gestionnaire IIS montre où les administrateurs sélectionnent un site et accèdent aux paramètres communs.
Ce que IIS fournit
IIS peut servir des fichiers statiques tels que des fichiers HTML, des feuilles de style, des scripts et des images. Il peut également transmettre des requêtes aux applications qui génèrent du contenu dynamiquement. IIS utilise des modules optionnels pour des tâches comme l'authentification, la journalisation, le filtrage des requêtes, la compression et la réécriture d'URL, permettant ainsi aux administrateurs d'activer les fonctionnalités nécessaires à une application.
IIS est couramment utilisé avec les applications web Microsoft. Par exemple, ASP.NET Core peut s'exécuter avec IIS grâce au module ASP.NET Core ; la documentation actuelle du pack d'hébergement .NET de Microsoft explique l'environnement d'exécution et le module nécessaires à cette configuration. D'autres technologies peuvent fonctionner via des gestionnaires ou des modules supplémentaires, mais la compatibilité, la maintenance et la sécurité doivent être vérifiées pour chaque application.
La console graphique est l'un des principaux atouts d'IIS. Elle centralise les sites, les liaisons, les pools d'applications, les modules, les paramètres de sécurité et les journaux. Cet environnement peut également être automatisé via PowerShell ou configuré par fichiers, ce qui permet aux équipes de reproduire les mêmes paramètres sur plusieurs serveurs.
Comment IIS traite une requête Web
Dans les serveurs IIS modernes, le composant HTTP.sys de la pile HTTP Windows écoute le trafic HTTP et HTTPS entrant. Les services IIS et le service d'activation des processus Windows (WAS) utilisent la configuration du serveur pour acheminer une requête vers le site et le pool d'applications appropriés. Un processus de travail traite ensuite la requête et renvoie une réponse via la pile HTTP. Le guide d'architecture IIS de Microsoft décrit ces composants et le flux des requêtes.
Un pool d'applications regroupe une ou plusieurs applications web sous des paramètres de processus de travail. La séparation des pools crée des limites de processus, empêchant ainsi qu'un problème dans une application n'affecte directement les applications d'un autre pool. Cependant, les pools n'isolent pas les charges de travail du système d'exploitation, du processeur, de la mémoire ou de la capacité réseau partagés du serveur ; il est donc toujours nécessaire de surveiller l'utilisation des ressources et les autorisations.
Flux conceptuel des requêtes : HTTP.sys reçoit une requête du navigateur, IIS la dirige vers un pool d’applications et un processus de travail renvoie la réponse.
Quand IIS est-il pertinent ?
Choisissez IIS lorsque votre application dépend déjà de Windows Server, d'ASP.NET, de l'authentification Windows ou d'une configuration spécifique à IIS, ou lorsque votre équipe est équipée pour administrer des serveurs Windows.
Envisagez un autre serveur si vous avez besoin d'un déploiement basé sur Linux, si vous préférez une configuration basée sur des fichiers ou si vous souhaitez un proxy inverse avec un modèle de fonctionnement différent.
Utilisez IIS Express pour le développement et les tests locaux légers lorsqu'une installation serveur complète n'est pas nécessaire. Microsoft le décrit comme une version orientée développement, et non comme une solution de remplacement pour l'hébergement en production.
IIS est un composant de Windows et non une licence de serveur web achetée séparément par site ou visiteur. Cependant, la licence et les règles d'accès de Windows Server s'appliquent au déploiement. Microsoft indique qu'une licence d'accès client (CAL) peut être requise pour accéder au logiciel Windows Server ; consultez la documentation officielle relative aux CAL et les conditions de votre hébergement.
Alternatives à IIS à envisager
Il n'existe pas de serveur web « idéal » universel. Comparez la plateforme requise par votre application, les préférences de votre équipe en matière de configuration des services et la nécessité pour le serveur d'héberger directement l'application ou de rediriger le trafic vers un autre processus.
Comparaison conceptuelle des interfaces : IIS utilise une console Windows, tandis qu’Apache et NGINX sont souvent configurés via des fichiers texte.
Option
Convient parfaitement lorsque
Compromis à considérer
Serveur HTTP Apache
Vous souhaitez un serveur modulaire et open source offrant de nombreuses options de configuration et une documentation complète de la plateforme.
Ses nombreux modules et directives offrent une grande flexibilité, mais exigent des administrateurs qu'ils comprennent et maintiennent la configuration. Consultez la documentation du serveur HTTP Apache .
NGINX
Vous avez besoin d'un serveur web capable également de faire office de proxy inverse ou d'équilibreur de charge HTTP devant les services applicatifs.
Il est configuré via des fichiers texte et achemine généralement les requêtes dynamiques vers un processus applicatif distinct. Consultez la documentation officielle de NGINX .
Caddy
Vous souhaitez une configuration concise et un provisionnement et un renouvellement automatiques des certificats HTTPS pour les noms d'hôtes publics éligibles.
Pour une application Windows existante, conserver IIS peut s'avérer la solution la plus simple si le serveur est pris en charge et maintenu de manière sécurisée. Pour un nouveau projet, basez votre choix sur les exigences de la plateforme et les outils d'exploitation que votre équipe maîtrise. Testez l'authentification, les règles d'URL, les certificats, la journalisation et le comportement du déploiement avant de migrer un site en production d'un serveur à un autre.
Conclusion
IIS est le serveur web configurable de Microsoft pour Windows, doté d'une console d'administration et d'un modèle de pool d'applications adapté à de nombreux sites et services hébergés sous Windows. Apache HTTP Server, NGINX et Caddy constituent des alternatives intéressantes lorsque leurs plateformes ou modèles d'exploitation correspondent mieux à un projet. Le choix doit se baser sur la compatibilité des applications, les besoins d'administration, ainsi que les exigences en matière de licences et de support pour l'ensemble de l'environnement.