J'essaie de mettre en place un IIS hautement disponible pour les sites Web destinés au public, et j'ai du mal à trouver des informations sur la méthode la meilleure et la plus sûre pour définir les autorisations, configurer correctement IIS et vérifier que mon plan de configuration est optimal.
Après de nombreuses recherches, j'ai opté pour cette configuration :
- 2 serveurs IIS, utilisant une configuration partagée.
- Les deux serveurs IIS se connectent à le même partage de fichiers SMB de Windows Failover Cluster pour les applications données du site web.
- Le serveur de fichiers utilise Starwind vSAN.
- Les serveurs IIS reçoivent des requêtes d'un cluster NLB/ARR.
- Les serveurs sont des VMs sur deux hôtes Hyper-V
- Mysql fonctionnera sur deux VMs Linux avec MariaDB Galera Cluster.
Le consensus général que j'ai trouvé était de ne pas utiliser SOFS pour IIS, il s'agit donc d'une configuration standard de serveur de fichiers comme un partage SMB - Application. Starwind a été utilisé car il n'y a pas de point de défaillance unique sur le système à deux nœuds, et la réplication est synchrone. Les données feront l'objet de sauvegardes régulières et de copies d'ombre, et les machines virtuelles auront des répliques sur un autre hôte.
Mes problèmes actuels proviennent de la compréhension des autorisations et des utilisateurs nécessaires à la mise en place de données IIS partagées.
Actuellement, les données sont locales au serveur et ont des autorisations pour les utilisateurs intégrés, le système, les administrateurs, trustedinstaller, et IUSR est défini pour les autorisations d'écriture sur certains dossiers. ApplicationPoolIdentiy est utilisé avec l'authentification pass-through. L'authentification anonyme est définie sur IUSR.
Pour les données partagées, je n'ai réussi à faire fonctionner mes sites Web qu'après avoir configuré le pool d'applications pour qu'il utilise un utilisateur de domaine, et configuré l'authentification anonyme pour qu'elle utilise ApplicationPoolIdentity. J'ai ajouté l'utilisateur du domaine pour qu'il ait toutes les permissions sur le partage SMB. J'ai également vu des recommandations visant à ajouter le compte d'ordinateur aux autorisations et à conserver les comptes système locaux pour les pools d'applications, sauf que l'IUSR doit toujours être modifié en Appidentity pour l'authentification anonyme. Une méthode est-elle préférable ? Quelles sont les permissions NTFS et SMB nécessaires, et qui a besoin d'un accès en écriture lorsque IUSR était précédemment utilisé ?
Par ailleurs, le fait d'avoir des fichiers partagés dans IIS pose-t-il des problèmes ? Les dossiers logs, caching et session php peuvent-ils être partagés ? J'ai actuellement des erreurs d'autorisation d'écriture sur les journaux et la mise en cache bien que j'aie donné toutes les autorisations.
Toute aide, toute réflexion et toute opinion sont les bienvenues !