Product Documentation

Équilibrage de charge avec NetScaler

Oct 31, 2016

Configurer un groupe de serveurs StoreFront et l'équilibrage de charge NetScaler

Planifier votre déploiement StoreFront avec équilibrage de charge

Cet article contient des instructions sur la manière de déployer un groupe de serveurs StoreFront contenant deux ou plusieurs serveurs StoreFront dans une configuration d'équilibrage de charge active.  Cet article fournit des informations sur la manière de configurer un boîtier NetScaler pour l'équilibrage de charge des requêtes entrantes depuis Citrix Receiver ou Citrix Receiver pour Web entre tous les nœuds StoreFront du groupe de serveurs. Il explique également comment configurer le nouveau moniteur Storefront pour une utilisation avec un équilibrage de charge NetScaler ou tiers.

Pour des exemples de configuration d'équilibrage de charge, veuillez consulter les sections « Scénario 1 » et « Scénario 2 » ci-dessous.

Testé avec l'environnement suivant

  • Quatre nœuds StoreFront 3.0 Windows Server 2012 R2 dans un seul groupe de serveurs.
  • Un équilibrage de charge NetScaler 10.5 configuré pour l'équilibrage de charge « persistant » CookieInsert et Least Connection.
  • Un client test Windows 8.1 avec Fiddler 4.0 et Citrix Receiver pour Windows 4.3 installés.

Certificat SSL requis pour le déploiement avec charge équilibrée, si vous prévoyez d'utiliser le protocole HTTPS

Tenez compte des options suivantes avant d'effectuer l'achat d'un certificat provenant d'une autorité de certification commerciale ou d'en émettre un à partir de votre autorité de certification d'entreprise.

  • Option 1 : permet d'utiliser un certificat générique *.exemple.com sur le vServer d'équilibrage de charge NetScaler et sur les nœuds de groupe de serveurs StoreFront.  Cela simplifie la configuration et vous permet d'ajouter des serveurs StoreFront supplémentaires dans le futur sans avoir à remplacer le certificat.  Citrix recommande cette option.
  • Option 2 : permet d'utiliser un certificat qui inclut des noms de sujet alternatifs (SAN) sur le vServer d'équilibrage de charge NetScaler et sur les nœuds de groupe de serveurs StoreFront.  Ajouter au certificat des SAN supplémentaires correspondant à tous les noms de domaine complets (FQDN) du serveur StoreFront est facultatif, mais recommandé, car cela permet une plus grande souplesse dans le déploiement StoreFront.  Incluez un réseau SAN pour la découverte basée sur l'adresse e-mail discoverReceiver.example.com.

Pour de plus amples informations sur la configuration de la découverte basée sur l'adresse e-mail, consultez la section http://blogs.citrix.com/2013/04/01/configuring-email-based-account-discovery-for-citrix-receiver/.

Remarque : lorsque l'exportation de la clé privée associée avec le certificat n'est pas possible, utilisez deux certificats distincts : un sur le vServer d'équilibrage de charge NetScaler et un autre certificat sur les nœuds de groupe de serveurs StoreFront.  Les deux certificats doivent inclure des noms SAN.  Citrix ne recommande pas cette option si vous utilisez un boîtier NetScaler physique conforme à la norme FIPS.  Ceci est la seule option viable si vous utilisez un NetScaler FIPS.

localized image
localized image

Créer un certificat SSL pour l'équilibrage de charge NetScaler et les serveurs StoreFront

Importer un certificat émis par une autorité de certification Windows sur un boîtier NetScaler avec OpenSSL

  • WinSCP est un outil tiers utile et gratuit pour déplacer des fichiers d'un ordinateur Windows sur un système de fichiers NetScaler.  Copiez les certificats à importer sur le dossier /nsconfig/ssl/ dans le système de fichiers NetScaler. 
  • Vous pouvez aussi utiliser les outils OpenSSL sur NetScaler pour extraire la clé et le certificat à partir d'un fichier PKCS12/PFX pour créer deux fichiers .CER et .KEY X.509 séparés au format PEM que NetScaler peut utiliser.
  1. Copiez le fichier PFX dans /nsconfig/ssl/ sur le boîtier NetScaler ou VPX.
  2. Ouvrez l'interface de ligne de commande (CLI) de NetScaler.
  3. Tapez Shell pour quitter NetScaler CLI et basculer vers le shell FreeBSD.
  4. Changez de répertoire à l'aide de cd /nsconfig/ssl.
  5. Exécutez openssl pkcs12 -in < fichier de cert importé>.pfx -nokeys -out <nomfichiercert>.cer et entrez le mot de passe PFX lorsque vous y êtes invité.
  6. Exécutez openssl pkcs12 -in <fichier de cert importé>.pfx -nocerts -out <nomfichierclé>.key et entrez le mot de passe PFX lorsque vous y êtes invité, puis définissez une phrase secrète au format PEM pour la clé privée pour protéger le fichier .KEY.
  7. Exécutez ls -al pour vérifier que les fichiers .CER et .KEY ont été créés avec succès dans /nsconfig/ssl/.
  8. Tapez Exit pour retourner à NetScaler CLI.

Configurer le certificat SSL sur NetScaler une fois qu'il a été importé

  1. Ouvrez une session sur la console de gestion de NetScaler.
  2. Sélectionnez Traffic Management > SSL > SSL Certificates et cliquez sur Install.
  3. Sur la page Install Certificate, entrez les noms de la paire de clés certificat et privée.

o Sélectionnez le fichier de certificat .cer sur le système de fichiers NetScaler dans /nsconfig/ssl/.

o Sélectionnez le fichier .key contenant la clé privée dans le même emplacement.

 

localized image

Créer des enregistrements DNS pour l'équilibrage de charge du groupe de serveurs StoreFront

Créez un enregistrement DNS A et PTR pour le nom de domaine complet (FQDN) partagé de votre choix.  Les clients de votre réseau utilisent ce nom de domaine complet (FQDN) pour accéder au groupe de serveurs StoreFront utilisant l'équilibrage de charge NetScaler.

Exemple : storefront.example.com résout l'adresse IP virtuelle du vServer d'équilibrage de charge (VIP).

Scénario 1 : une connexion sécurisée HTTPS 443 de bout en bout entre le client et l'équilibrage de charge NetScaler et également entre l'équilibrage de charge et deux ou plusieurs serveurs StoreFront 3.0. 

Ce scénario utilise un moniteur StoreFront modifié utilisant le port 443.

Ajouter des nœuds de serveur StoreFront individuels à l'équilibrage de charge NetScaler

  1. Ouvrez une session sur la console de gestion de NetScaler.
  2. Sélectionnez Traffic Management > Load Balancing > Servers > Add et ajoutez chacun des quatre nœuds StoreFront à l'équilibrage de charge.

    Exemple = 4 nœuds StoreFront 2012R2, allant de 2012R2-A à -D

  3. Utilisez la configuration de serveur basée sur l'adresse IP et entrez l'adresse IP du serveur pour chaque nœud StoreFront.
localized image

Définir un moniteur StoreFront pour vérifier l'état de tous les nœuds StoreFront dans le groupe de serveurs

  1. Ouvrez une session sur la console de gestion de NetScaler.
  2. Sélectionnez Traffic Management > Load Balancing > Monitors > Add, ajoutez un moniteur appelé StoreFront et acceptez tous les paramètres par défaut.
  3. Dans le menu déroulant Type, sélectionnez StoreFront.
  4. Assurez-vous que la case Secure est cochée si vous utilisez des connexions SSL entre votre vServer d'équilibrage de charge et StoreFront ; sinon, laissez cette option désactivée.
  5. Spécifiez le nom du magasin sous l'onglet Special Parameters.
  6. Cochez la case Check Backend Services sous l'onglet Special Parameters.  Cette option permet de contrôler les services exécutés sur le serveur StoreFront.  Les services StoreFront sont contrôlés par interrogation d'un service Windows qui s'exécute sur le serveur StoreFront et qui renvoie l'état de tous les services StoreFront en cours d'exécution.
localized image

Créer un groupe de services HTTPS 443 contenant tous les serveurs StoreFront

1. Dans le groupe de services, sélectionnez l'option Members sur le côté droit et ajoutez tous les nœuds de serveurs StoreFront que vous avez définis précédemment dans la section Servers.

2. Définissez le port SSL et accordez à chaque nœud un ID de serveur unique lors de leur ajout.

localized image

3. Sur l'onglet Monitors, sélectionnez le moniteur StoreFront que vous avez créé précédemment.

localized image

4. Sur l'onglet Certificates, liez le certificat SSL que vous avez importé préalablement.

5. Liez le certificat CA utilisé pour signer le certificat SSL que vous avez importé préalablement et les autres autorités de certification faisant partie de la chaîne de confiance PKI.

localized image

Créer un vServer d'équilibrage de charge pour le trafic utilisateur

1. Ouvrez une session sur la console de gestion de NetScaler.

2. Sélectionnez Traffic Management > Load Balancing > Virtual Servers > Add pour créer un nouveau vServer.

3. Sélectionnez la méthode d'équilibrage de charge pour le vServer.  Les options courantes pour l'équilibrage de charge StoreFront sont round robin ou least connection.

localized image

4. Liez le groupe de services que vous avez créé précédemment au vServer d'équilibrage de charge.

5. Liez au vServer d'équilibrage de charge le certificat SSL et CA vous avez déjà lié au groupe de services.

6. Depuis le menu du vServer d'équilibrage de charge, sélectionnez Persistence sur le côté droit et définissez la méthode de persistance sur CookieInsert.

7. Attribuez un nom au cookie. Par exemple, NSC_SFPersistence, il est plus facile de l'identifier dans les traces Fiddler lors du débogage.

8. Définissez la persistance de sauvegarde sur None.

localized image

Scénario 2 : Arrêt SSL - Communication HTTPS 443 entre le client et l'équilibrage de charge NetScaler et connexions HTTP 80 entre l'équilibrage de charge et les serveurs StoreFront 3.0.  

Ce scénario utilise le moniteur StoreFront par défaut avec le port 8000.

Ajouter des serveurs StoreFront individuels à l'équilibrage de charge NetScaler

  1. Ouvrez une session sur la console de gestion de NetScaler.
  2. Sélectionnez Traffic Management > Load Balancing > Servers > Add et ajoutez chacun des quatre serveurs StoreFront à l'équilibrage de charge.

    Exemple = 4 serveurs StoreFront 2012R2, allant de 2012R2-A à -D

  3. Utilisez la configuration de serveur basée sur l'adresse IP et entrez l'adresse IP du serveur pour chaque serveur StoreFront.
localized image

Définir un moniteur StoreFront HTTP 8000 pour vérifier l'état de tous les serveurs StoreFront du groupe de serveurs

  1. Ouvrez une session sur la console de gestion de NetScaler.
  2. Sélectionnez Traffic Management > Monitors > Add et ajoutez un nouveau moniteur appelé StoreFront.
  3. Ajoutez un nom pour le nouveau moniteur et acceptez tous les paramètres par défaut.
  4. Sélectionnez Type dans le menu déroulant et définissez-le sur StoreFront.
  5. Spécifiez le nom du magasin sous l'onglet Special Parameters.
  6. Entrez 8000 pour port de destination, car cela correspond à l'instance de moniteur par défaut qui est créée sur chaque serveur StoreFront.
  7. Cochez la case Check Backend Services sous l'onglet Special Parameters.  Cette option permet de contrôler les services exécutés sur le serveur StoreFront.  Les services StoreFront sont contrôlés par interrogation d'un service Windows qui s'exécute sur le serveur StoreFront et qui renvoie l'état de tous les services StoreFront en cours d'exécution.

Créer un groupe de services HTTP 80 contenant tous les serveurs StoreFront

  1. Dans le groupe de services, sélectionnez l'option Members sur le côté droit et ajoutez tous les nœuds de serveurs StoreFront que vous avez définis précédemment dans la section Servers.
  2. Définissez le port HTTP sur 80 et accordez à chaque serveur un ID de serveur unique lors de leur ajout.
  3. Sur l'onglet Monitors, sélectionnez le moniteur StoreFront que vous avez créé précédemment.

Créer un vServer d'équilibrage de charge d'arrêt SSL pour le trafic utilisateur

  1. Sélectionnez Traffic Management > Load Balancing > Virtual Servers > Add pour créer un nouveau vServer.
  2. Sélectionnez la méthode d'équilibrage de charge que le vServer utilisera.  Les options courantes pour l'équilibrage de charge StoreFront sont round robin ou least connection.
  3. Liez le groupe de services que vous avez créé précédemment au vServer d'équilibrage de charge.
  4. Liez au vServer d'équilibrage de charge le certificat SSL et CA vous avez déjà lié au groupe de services.

    Remarque : si le client n'est pas autorisé à stocker le cookie HTTP, les demandes ultérieures ne disposent pas du cookie HTTP et la Persistence n'est pas utilisé.

  5. Depuis le menu du vServer d'équilibrage de charge, sélectionnez Persistence et définissez la méthode de persistance sur CookieInsert.
  6. Attribuez un nom au cookie. Par exemple, NSC_SFPersistence, il est plus facile de l'identifier dans les traces Fiddler lors du débogage.
  7. Définissez la persistance de sauvegarde sur None.
localized image

Créer un équilibrage de charge vServer pour la synchronisation des abonnements entre les groupes de serveurs

Considérations à prendre en compte avant de créer un vServer d'équilibrage de charge :

  • Option 1 : créez un seul vServer pour équilibrer la charge du trafic utilisateur uniquement.  Cela suffit si vous effectuez uniquement des lancements ICA d'applications publiées et de bureaux. (obligatoire et généralement suffisant).
  • Option 2 : créez une paire de vServers : un pour l'équilibrage de charge du trafic utilisateur pour effectuer des lancements ICA d'applications publiées et de bureaux et un autre pour l'équilibrage de charge des opérations de synchronisation de données d'abonnement. (nécessaire uniquement lors de la propagation de données d'abonnement entre plusieurs groupes de serveurs StoreFront dont la charge est équilibrée dans un grand déploiement multisite).

Si un déploiement multisite est constitué de plusieurs groupes de serveurs StoreFront se trouvant dans des emplacements géographiques différents, vous pouvez répliquer les données d'abonnement entre eux à l'aide d'une stratégie « pull » selon un planning récurrent. La réplication d'abonnement StoreFront utilise le port TCP 808, donc l'utilisation d'un vServer d'équilibrage de charge sur le port HTTP 80 ou SSL 443 échoue.  Pour fournir une haute disponibilité pour ce service, vous devez créer un deuxième vServer sur chaque NetScaler de votre déploiement pour équilibrer la charge du port TCP 808 pour chacun des groupes de serveurs StoreFront.  Lors de la configuration du planning de réplication, spécifiez une adresse de groupe de services qui correspond à l'adresse IP virtuelle du vServer de synchronisation d'abonnement.  Assurez-vous que l'adresse du groupe de serveurs est le nom de domaine complet de l'équilibrage de charge pour le groupe de serveurs à cet emplacement. 

Configurez un groupe de services pour la synchronisation d'abonnement

  1. Ouvrez une session sur la console de gestion de NetScaler.
  2. Sélectionnez Traffic Management > Service Groups > Add et ajoutez un nouveau groupe de services.
  3. Définissez le protocole sur TCP.
  4. Dans le groupe de services, sélectionnez l'option Members sur le côté droit et ajoutez tous les nœuds de serveurs StoreFront que vous avez définis précédemment dans la section Servers.
  5. Sur l'onglet Monitors , sélectionnez le moniteur TCP.
localized image

Créer un équilibrage de charge vServer pour la synchronisation des abonnements entre les groupes de serveurs

  1. Ouvrez une session sur la console de gestion de NetScaler.
  2. Sélectionnez Traffic Management > Service Groups > Add et ajoutez un nouveau groupe de services.
  3. Définissez la méthode d'équilibrage de charge sur round robin.
  4. Définissez le protocole sur TCP.
  5. Entrez 808 et NON 443 comme numéro de port.
localized image

Appartenance au groupe CitrixSubscriptionsSyncUsers

Pour que le serveur StoreFront A dans l'emplacement A demande et récupère des données d'abonnement à partir du serveur B à un emplacement différent, le serveur doit être un membre du groupe de sécurité local CitrixSubscriptionsSyncUsers sur le serveur B.  Le groupe local CitrixSubscriptionsSyncUsers contient une liste de contrôle d'accès de tous les serveurs StoreFront distants autorisés à extraire les données d'abonnement d'un serveur donné.  Pour la synchronisation d'abonnement bidirectionnelle, le serveur B doit également être un membre du groupe de sécurité CitrixSubscriptionsSyncUsers sur le serveur A pour extraire les données d'abonnement à partir de ce dernier.

localized image

Configurer le groupe de serveurs StoreFront pour l'équilibrage de charge

1. Importez la clé certificat et privée qui a été déployée sur le vServer d'équilibrage de charge NetScaler pour chaque nœud StoreFront du groupe de serveurs.

2. Créez une liaison HTTPS dans IIS sur chaque nœud StoreFront, puis liez le certificat que vous avez importé.

localized image

3. Installez StoreFront sur chaque nœud du groupe de serveurs.

4. Lors de l'installation de StoreFront, définissez l'URL de base de l'hôte sur le nœud principal qui sera le nom de domaine complet (FQDN) partagé utilisé par tous les membres du groupe de serveurs.  Vous devez utiliser un certificat contenant le nom de domaine complet (FQDN) avec équilibrage de charge en tant que nom courant (CN) ou nom de sujet alternatif (SAN).

     Consultez la section Créer un certificat SSL pour l'équilibrage de charge NetScaler et les serveurs StoreFront.

5. Lorsque vous avez terminé la configuration initiale de StoreFront, associez tous les nœuds, l'un après l'autre, avec le groupe de serveurs à l'aide du nœud principal. 

6. Sélectionnez Server Group > Add Server > Copy the Authorization Code pour le serveur à associer.

localized image

7. Propagez la configuration à partir du nœud principal vers tous les autres nœuds du groupe de serveurs.

8. Testez le groupe de serveurs avec équilibrage de charge à l'aide d'un client qui peut contacter et résoudre le nom de domaine complet partagé de l'équilibrage de charge.

 

Moniteur de services Citrix

Pour activer le contrôle externe de l'état d'exécution des services Windows sur lesquels StoreFront se repose pour son bon fonctionnement, utilisez le service Windows Moniteur de services Citrix.  Ce service ne dépend d'aucun autre service et peut surveiller et signaler les échecs d'autres services essentiels de StoreFront.  Le moniteur permet à d'autres composants Citrix, tels que NetScaler, de déterminer l'intégrité relative d'un déploiement de serveurs StoreFront en externe.  Des logiciels tiers peuvent utiliser la réponse XML du moniteur StoreFront pour contrôler l'intégrité des services essentiels StoreFront.

Lorsque StoreFront est déployé, un moniteur par défaut qui utilise le protocole HTTP et le port 8000 est créé. 

Remarque : une seule instance de moniteur peut exister dans un déploiement StoreFront.

Pour apporter des modifications au moniteur par défaut existant, telles que le réglage du protocole et du port sur HTTPS 443, utilisez les trois applets de commande PowerShell pour afficher ou reconfigurer l'URL de service du moniteur StoreFront. 

$DefaultServiceURL = "http://localhost:8000/StorefrontMonitor"
Remove-DSServiceMonitorFeature
Install-DSServiceMonitorFeature -ServiceUrl $DefaultServiceURL
Get-DSServiceMonitorFeature

 

Supprimer le moniteur de services par défaut et le remplacer par un moniteur qui utilise le protocole HTTPS et le port 443

  1. Ouvrez la console PowerShell (ISE) sur le serveur StoreFront principal et exécutez les commandes suivantes pour modifier le moniteur par défaut sur HTTPS 443.

    # Importer les modules API de StoreFront
    & "$Env:PROGRAMFILES\Citrix\Receiver StoreFront\Scripts\ImportModules.ps1"
    $ServiceURL = "https://localhost:443/StorefrontMonitor"

    Remove-DSServiceMonitorFeature

    Install-DSServiceMonitorFeature -ServiceUrl $ServiceURL


  2. Une fois terminé, propagez les modifications à tous les autres serveurs du groupe de serveurs StoreFront.
  3. Pour effectuer un test rapide sur le nouveau moniteur, entrez l'adresse URL suivante dans le navigateur sur le serveur StoreFront ou toute autre machine avec accès réseau au serveur StoreFront.  Le navigateur doit afficher un résumé XML de l'état de chaque service StoreFront.

https://<FQDNéquilibragedecharge>:443/StoreFrontMonitor/GetSFServicesStatus

localized image

vServers NetScaler Gateway et d'équilibrage de charge sur le même boîtier NetScaler

Si vous avez configuré le vServer NetScaler Gateway et le vServer d'équilibrage de charge sur le même boîtier NetScaler, les utilisateurs de domaine internes peuvent rencontrer des problèmes lors d'une tentative d'accès direct à l'URL de base de l'hôte avec équilibrage de charge StoreFront au lieu de passer par le vServer NetScaler Gateway. 

Dans ce scénario, StoreFront suppose que l'utilisateur a déjà été authentifié sur NetScaler Gateway, car StoreFront associe l'adresse IP source de l'utilisateur entrant avec l'adresse IP de sous-réseau (SNIP) de NetScaler Gateway.  StoreFront essaie alors d'utiliser le protocole AGBasic pour effectuer l'authentification silencieuse sur NetScaler Gateway, plutôt que d'inviter l'utilisateur à ouvrir une session à l'aide de ses informations d'identification de domaine.  Pour éviter ce problème, ignorez l'adresse SNIP comme illustré ci-dessous afin que le nom d'utilisateur et le mot de passe d'authentification soient utilisés à la place d'AGBasic.

Configurer un NetScaler Gateway sur le groupe de serveurs StoreFront 

localized image

Options de bouclage lors de l'équilibrage de charge d'un groupe de serveurs StoreFront à l'aide de NetScaler

Dans les versions précédentes de StoreFront telles que 2.6 ou les versions plus anciennes, Citrix recommandait aux utilisateurs de modifier manuellement le fichier d'hôtes sur chaque serveur StoreFront pour mapper le nom de domaine complet (FQDN) de l'équilibrage de charge sur l'adresse de bouclage ou l'adresse IP du serveur StoreFront spécifique.  Cela garantit que Receiver pour Web communique toujours avec les services StoreFront sur le même serveur dans un déploiement dont la charge est équilibrée.  Ceci est nécessaire car une session HTTP est créée durant le processus de connexion explicite entre Receiver pour Web et le service d'authentification, et Receiver pour Web communique avec StoreFront Services à l'aide du nom de domaine complet (FQDN) de base.  Si le nom de domaine complet (FQDN) de base parvenait à résoudre l'équilibrage de charge, l'équilibrage de charge pouvait potentiellement envoyer le trafic vers un autre serveur StoreFront dans le groupe, ce qui entraînait l'échec de l'authentification.  L'équilibrage de charge n'est pas contourné, sauf lorsque Receiver pour Web tente de contacter le service de magasin qui réside sur le même serveur que lui-même. 

Vous pouvez définir les options de bouclage à l'aide de PowerShell.  L'activation du bouclage élimine le besoin de créer des entrées dans le fichier hôte sur chaque serveur StoreFront dans le groupe de serveurs. 

Exemple de fichier web.config Receiver pour Web :

<communication attempts="2" timeout="00:01:00" loopback="On" loopbackPortUsingHttp="80">

Exemple de commande PowerShell :

& "c:\program files\Citrix\receiver storefront\scripts\ImportModules.ps1"

Set-DSLoopback -SiteId 1 -VirtualPath "/Citrix/StoreWeb" -Loopback "OnUsingHttp" -LoopbackPortUsingHttp 81

Le paramètre -Loopback peut prendre trois valeurs possibles.

Valeur

Contexte

On:

Change l'hôte de l'adresse URL sur 127.0.0.1.  Le schéma et le port (si spécifiés) ne sont pas modifiés.

Ne peut pas être utilisé si l'équilibrage de charge d’arrêt SSL est utilisé.

OnUsingHttp:

Change l'hôte sur 127.0.0.1 et le schéma sur HTTP et modifie la valeur du port configurée pour l'attribut loopbackPortUsingHttp

À utiliser uniquement avec un équilibrage de charge d’arrêt SSL.  Les communications entre l'équilibrage de charge et les serveurs StoreFront utilisent HTTP.  Vous pouvez explicitement configurer le port HTTP à l'aide de l'attribut -loopbackPortUsingHttp.

Off:

L'adresse URL de la requête n'est en aucun modifiée.

Utilisé pour résoudre les problèmes.  Les outils tels que Fiddler ne peuvent pas enregistrer le trafic entre Receiver pour Web et StoreFront Services si le bouclage est défini sur « On ».