Atteindre la haute disponibilité et l’extensibilité - ARR et l’équilibreur de charge matérielle
par Won Yoo
atteindre la haute disponibilité et la scalabilité :
Microsoft Application Request Routing (ARR) pour IIS 7.0 et versions ultérieures et l’équilibreur de charge matériel.
Microsoft Corporation | F5 |
---|---|
Auteur : Won Yoo | Auteur : Ryan Korock |
Date de publication : 13 novembre 2008 |
Abstract
Ce document fournit des conseils prescriptifs sur la façon dont le routage des requêtes d’application (ARR) peut être utilisé avec un équilibreur de charge matériel pour obtenir une haute disponibilité et une scalabilité. L’équilibreur de charge BIG-IP F5 est utilisé dans ce document pour illustrer la relation de travail entre ARR et hardware d’équilibrage de charge.
Vue d’ensemble
Microsoft Application Request Routing (ARR) pour IIS 7.0 et versions ultérieures est un module de routage basé sur proxy qui transfère les requêtes HTTP aux serveurs de contenu en fonction des en-têtes HTTP, des variables de serveur et des algorithmes d’équilibrage de charge. Un déploiement ARR classique est illustré dans le diagramme ci-dessous :
Bien que ARR offre une haute disponibilité et une scalabilité pour les serveurs de contenu, le déploiement global n’est pas hautement disponible ou évolutif, car :
- ARR est le point de défaillance unique.
- L’extensibilité des serveurs de contenu est limitée par la capacité maximale d’un serveur ARR.
Pour surmonter ces défis, les administrateurs peuvent envisager d’utiliser plusieurs serveurs ARR avec des hardwares d’équilibrage de charge, tels que F5 BIG-IP. ARR peut être déployé en mode actif/passif pour atteindre uniquement la haute disponibilité ou en mode actif/actif pour atteindre la haute disponibilité et la scalabilité. Ce livre blanc décrit comment ARR et F5 BIG-IP peuvent être déployés ensemble pour activer les scénarios ARR principaux tout en obtenant une haute disponibilité globale et une scalabilité.
Utilisation du routage des requêtes d’application et F5 BIG-IP
ARR est créé en tant que module sur IIS et est conçu pour prendre les décisions de routage au niveau de la couche 7 (application). Plus précisément, ARR s’appuie sur un autre module IIS, réécritured’URL, pour inspecter les en-têtes de requête HTTP entrants et les variables de serveur pour prendre les décisions de routage. Étant donné cette conception, les administrateurs peuvent écrire des règles d’acheminement intelligentes en fonction des informations au niveau de l’application, telles que :
- Nom d’hôte (HTTP_HOST) : routez le trafic vers différents serveurs de contenu en fonction du nom d’hôte.
- Ressource demandée (URL) : en fonction des extensions de fichier, déterminez si les ressources demandées sont destinées au contenu statique ou au contenu dynamique et routez les requêtes en conséquence.
- Informations client (HTTP_USER_AGENT) : en fonction du type et de la version du navigateur, routez les requêtes vers les serveurs de contenu appropriés.
- En-têtes personnalisés (définir en tant que cookie par applications) : routez le trafic en fonction des informations de cookie définies par les applications, telles que la préférence utilisateur ou l’identificateur d'utilisateur.
Voici quelques-uns des exemples ci-dessus. Pour obtenir la liste complète des en-têtes HTTP et des variables de serveur, reportez-vous à l’annexe A.
La fonctionnalité de couche 3 et de couche 4 de F5 de Big-IP complète la force d’ARR en matière de prise de décisions de routage basées sur la couche 7, telles que les en-têtes HTTP et les variables de serveur. En même temps, ARR ne fournit pas de fonctionnalités de déploiement à tolérance de panne pour elle-même et doit s’appuyer sur d’autres technologies et solutions complémentaires pour obtenir une haute disponibilité pour le niveau ARR, comme indiqué ci-dessous :
Scénario 1 : routage HTTP et équilibrage de charge
Le scénario d’équilibrage de charge et de routage basé sur HTTP active une architecture de déploiement à 3 niveaux qui implique :
- Niveau 1 (Web) : fournit deux objectifs de traitement du contenu statique et du routage et de l’équilibrage de charge des requêtes dynamiques restantes sur les serveurs de niveau 2.
- Niveau 2 (application) : traite le contenu dynamique qui s’appuie sur la logique métier.
- Niveau 3 (données) : stocke les données.
Le diagramme suivant illustre le déploiement à 3 niveaux :
Bien que l’exemple ci-dessus montre une règle d’acheminement qui différencie le contenu statique du contenu dynamique, un autre scénario courant consiste à différencier les requêtes de présentation des requêtes de service web.
Option 1 : actif/passif
En mode actif/passif, il existe généralement deux serveurs ARR dans lesquels un serveur traite les requêtes tandis que l’autre serveur est un serveur de basculement. Comme indiqué ci-dessus, bien que cette configuration atteigne une haute disponibilité en supprimant le point de défaillance unique, il ne s’agit pas d’une solution de scale-out, car la capacité d’agrégation des serveurs de contenu est limitée par la capacité maximale d’un serveur ARR.
Dans cette configuration, étant donné que deux serveurs ARR sont configurés de la même façon, une configuration partagée est utilisée. L’adresse F5 BIG-IP est configurée pour qu’elle route toutes les requêtes vers le serveur ARR actif et route uniquement les requêtes vers le serveur ARR passif si nécessaire.
À l’exception de la fonctionnalité d’affinité de nom d’hôte dans ARR, il n’existe aucune information d’état d’exécution qui doit être partagée entre les deux serveurs ARR. Par conséquent, pour ce scénario, aucune configuration spéciale n’est nécessaire sur les serveurs ARR ni sur le serveur F5 BIG-IP. Même si vous utilisez la fonctionnalité d’affinité du serveur dans ARR, les informations d’état affinité seront mises à la disposition du serveur passif via un cookie dans l’en-tête de requête lorsque F5 BIG-IP achemine les requêtes vers le serveur précédemment passif mais maintenant actif.
Ce scénario est entièrement pris en charge dans la version 1 d’ARR.
Configuration ARR
Étape 1 : Activer la configuration partagée sur deux serveurs ARR.
- Suivez les étapes décrites dans ce document pour configurer la configuration partagée dans IIS.
Étape 2 : Configurer l’architecture de déploiement à 3 niveaux à l’aide d’ARR.
Suivez les étapes décrites dans ce document pour configurer ARR dans l’architecture de déploiement à 3 niveaux.
À un niveau élevé, le document ci-dessus décrit :
- Comment rendre le contenu statique disponible sur le serveur ARR.
- Comment écrire des règles de réécriture d’URL pour le contenu statique afin qu’elles soient traitées directement à partir du serveur ARR.
- Comment écrire des règles de réécriture d’URL pour le contenu dynamique afin qu’elles soient transférées aux serveurs d’applications.
Configuration F5 BIG-IP
Dans ce scénario, vous allez créer un serveur virtuel qui équilibre la charge sur un pool de deux serveurs ARR (ou plus). La méthode d’équilibrage de charge que vous sélectionnez doit envoyer tout le trafic au serveur ARR principal jusqu’à ce qu’il ne devienne pas disponible. À ce stade, le LTM BIG-IP doit envoyer tout le trafic au serveur ARR secondaire.
Étape 1 : Configurer le pool de serveurs ARR.
- Dans la section Trafic local, cliquez sur Pools. Cliquez ensuite sur le bouton Créer pour créer un pool.
- Tout nom unique fonctionne pour le pool ; l’exemple utilise ARR_Pool.
- Pour le moniteur d’intégrité, vous pouvez utiliser un moniteur HTTP personnalisé ou le moniteur HTTP par défaut.
- Vous pouvez laisser la méthode d’équilibrage de charge définie sur Round Robin. Dans ce scénario, étant donné qu’il n’existe qu’un serveur ARR actif et passif, l’équilibrage de charge n’est pas utilisé.
- Veillez à activer l’activation de groupe prioritaire. Cela configure BIG-IP pour envoyer le trafic vers le ou les serveurs avec la valeur de priorité la plus élevée. Lorsque ces serveurs ne sont pas disponibles, BIG-IP envoie le trafic au serveur ARR avec la valeur de priorité la plus élevée suivante.
- Dans ce scénario, le serveur ARR à 10.0.0.1 a une valeur de priorité de 1, et 10.0.0.2 a une valeur de priorité de 2. Tout le trafic sera envoyé à 10.0.0.2 jusqu’à ce qu’il tombe en panne, puis le trafic sera envoyé à 10.0.0.1.
Étape 2 : Configurer le pool de serveurs ARR.
- Dans la section Trafic local, cliquez sur Serveurs virtuels. Cliquez ensuite sur le bouton Créer pour créer un serveur virtuel.
- Tout nom unique fonctionne pour le serveur virtuel ; l’exemple utilise ARR_VS.
- Pour la destination, vous pouvez utiliser l’adresse IP vers laquelle les utilisateurs pointent leurs navigateurs. Dans cet exemple spécifique, nous utilisons 65.197.145.23. Pour le port de service, nous utilisons « 80 ».
- Pour la section Type de serveur virtuel, vous avez plusieurs options. Étant donné que vous dépendez d’ARR pour acheminer, vous pouvez sélectionner le protocole HTTP de performances, qui est conçu pour obtenir les meilleures performances.
- Pour le pool par défaut, sélectionnez le pool que vous avez créé à l’étape 1.
- À ce stade, vous devez être en mesure de vous connecter à ce serveur virtuel, qui sera envoyé au serveur ARR approprié.
Option 2 : Actif/Actif
En mode Actif/Actif, vous pouvez avoir deux serveurs ARR ou plus. Cette configuration obtient à la fois une haute disponibilité et une scalabilité, contrairement au mode Actif/Passif, ce qui n’atteint que la haute disponibilité. Comme indiqué précédemment, étant donné que plusieurs serveurs ARR sont configurés de la même façon, une configuration partagée est utilisée. Le BIG-IP F5 est configuré pour équilibrer la charge des requêtes entrantes sur tous les serveurs ARR disponibles et intègres, ce qui transfère à leur tour les requêtes aux serveurs de contenu. Quelle que soit la fonctionnalité d’affinité de serveur utilisée sur le BIG-IP F5 ou non, aucune configuration spéciale n’est nécessaire sur les serveurs ARR. Tout d’abord, les serveurs ARR utilisent une configuration partagée afin qu’ils soient configurés de la même façon. Deuxièmement, étant donné que ARR utilise un cookie client pour stocker les informations d’affinité du serveur pour sa propre utilisation, ces informations sont disponibles par requête et sont donc disponibles sur les serveurs ARR. Ce scénario est entièrement pris en charge dans la version 1 d’ARR.
Configuration ARR
La configuration ARR pour Active/Active est identique à celle d’Active/Passive. La principale différence est la configuration de F5.
Étape 1 : Activer la configuration partagée sur deux serveurs ARR.
- Suivez les étapes décrites dans ce document pour configurer la configuration partagée dans IIS.
Étape 2 : Configurer l’architecture de déploiement à 3 niveaux à l’aide d’ARR.
Suivez les étapes décrites dans ce document pour configurer ARR dans l’architecture de déploiement à 3 niveaux.
À un niveau élevé, le document ci-dessus décrit :
- Comment rendre le contenu statique disponible sur le serveur ARR.
- Comment écrire des règles de réécriture d’URL pour le contenu statique afin qu’elles soient traitées directement à partir du serveur ARR.
- Comment écrire des règles de réécriture d’URL pour le contenu dynamique afin qu’elles soient transférées aux serveurs d’applications.
Configuration F5 BIG-IP
Dans ce scénario, tous les serveurs ARR disponibles sont considérés comme actifs et candidats au trafic à charge équilibrée. Utilisez le LTM BIG-IP pour déterminer l’intégrité et les performances du front-end ARR et diriger le trafic vers les meilleures performances.
Étape 1 : Configurer le pool de serveurs ARR.
- Dans la section Trafic local, cliquez sur Pools. Cliquez ensuite sur le bouton Créer pour créer un pool.
- Tout nom unique fonctionne pour le pool ; les exemples utilisent ARR_Pool. - Pour le moniteur d’intégrité, vous pouvez utiliser un moniteur HTTP personnalisé ou le moniteur HTTP par défaut. - Étant donné que vous avez plusieurs serveurs ARR auxquels distribuer le trafic, vous devez sélectionner une méthode d’équilibrage de charge qui convient le mieux à vos besoins. En supposant que tous les serveurs ARR ont des caractéristiques matérielles similaires, une méthode d’équilibrage de charge dynamique, telle que la plus rapide, observée ou prédictive, vous donnera une distribution basée sur les performances.
Étape 2 : Configurer le serveur virtuel.
- Dans la section Trafic local, cliquez sur Serveurs virtuels. Cliquez ensuite sur le bouton Créer pour créer un serveur virtuel.
- Tout nom unique fonctionne pour le serveur virtuel ; l’exemple utilise ARR_VS. - Pour la destination, vous pouvez utiliser l’adresse IP vers laquelle les utilisateurs pointent leurs navigateurs. Dans cet exemple spécifique, nous utilisons 65.197.145.23. Pour le port de service, nous utilisons « 80 ». - Pour la section Type de serveur virtuel, vous avez plusieurs options. Étant donné que vous dépendez d’ARR pour acheminer, vous pouvez sélectionner le protocole HTTP de performances, qui est conçu pour obtenir les meilleures performances. - Pour le pool par défaut, sélectionnez le pool que vous avez créé à l’étape 1.
Scénario 2 : Hébergement partagé à l’aide de l’affinité de nom d’hôte
Ce scénario utilise la fonctionnalité d’affinité de nom d’hôte dans ARR pour activer un déploiement d’hébergement partagé pour :
- Réduire la gestion manuelle et la maintenance impliquées dans le déploiement d’hébergement partagé traditionnel.
- Optimiser les ressources de serveur existantes tout en veillant à ce que toutes les ressources du serveur soient utilisées uniformément.
- Effectuer facilement un scale-out de l’environnement.
- Créer des opportunités d’affaires pour vendre une capacité supplémentaire.
Pour plus d’informations sur l’hébergement partagé et ARR, reportez-vous à ce document.
Le diagramme suivant illustre l’environnement d’hébergement partagé à l’aide d’ARR :
Option 1 : actif/passif
Comme indiqué précédemment, en mode actif/passif, il existe généralement deux serveurs ARR dans lesquels un serveur traite les requêtes tandis que l’autre serveur est un serveur de basculement. Bien que cette configuration atteigne une haute disponibilité en supprimant le point de défaillance unique, il ne s’agit pas d’une solution de scale-out, car la capacité d’agrégation des serveurs de contenu est limitée par la capacité maximale d’un serveur ARR.
Dans cette configuration, étant donné que deux serveurs ARR sont configurés de la même façon, une configuration partagée est utilisée. L’adresse F5 BIG-IP est configurée pour acheminer toutes les requêtes vers le serveur ARR actif et acheminer uniquement les requêtes vers le serveur ARR passif si nécessaire.
La fonctionnalité d’affinité de nom d’hôte dans ARR affine les requêtes adressées à un serveur particulier (ou un groupe de serveurs dans RC) en fonction du nom d’hôte. Les informations d’état d’exécution du mappage affiné entre les noms d’hôte et les serveurs de contenu sont stockées en mémoire dans une instance d’un serveur ARR. Dans la version 1 d’ARR, ARR tire parti du Cache externe Microsoft pour IIS pour partager et gérer cet état d’exécution entre plusieurs serveurs ARR. Vous trouverez plus d’informations sur ce scénario dans ce document.
Ce scénario est entièrement pris en charge dans la version 1 d’ARR.
Configuration ARR
Étape 1 : Activer la configuration partagée sur deux serveurs ARR.
- Suivez les étapes décrites dans ce document pour configurer la configuration partagée dans IIS.
Étape 2 : Configurer l’architecture de déploiement à 3 niveaux à l’aide d’ARR.
Suivez les étapes décrites dans ce document pour configurer ARR dans l’architecture de déploiement à 3 niveaux.
À un niveau élevé, le document ci-dessus décrit :
- Comment rendre le contenu statique disponible sur le serveur ARR.
- Comment écrire des règles de réécriture d’URL pour le contenu statique afin qu’elles soient traitées directement à partir du serveur ARR.
- Comment écrire des règles de réécriture d’URL pour le contenu dynamique afin qu’elles soient transférées aux serveurs d’applications.
Étape 3 : Activer et configurer le cache externe.
- Suivez les étapes décrites dans ce document pour activer et configurer le cache externe à utiliser avec ARR.
Configuration F5 BIG-IP
Dans ce scénario, vous allez créer un serveur virtuel qui équilibre la charge sur un pool de deux serveurs ARR (ou plus). La méthode d’équilibrage de charge que vous sélectionnez doit envoyer tout le trafic au serveur ARR principal jusqu’à ce qu’il ne devienne pas disponible. À ce stade, le LTM BIG-IP doit envoyer tout le trafic au serveur ARR secondaire.
Étape 1 : Configurer le pool de serveurs ARR.
- Dans la section Trafic local, cliquez sur Pools. Cliquez ensuite sur le bouton Créer pour créer un pool.
- Tout nom unique fonctionne pour le pool ; l’exemple utilise ARR_Pool. - Pour le moniteur d’intégrité, vous pouvez utiliser un moniteur HTTP personnalisé ou le moniteur HTTP par défaut. - Vous pouvez laisser la méthode d’équilibrage de charge définie sur Round Robin. Dans ce scénario, étant donné qu’il n’existe qu’un serveur ARR actif et passif, l’équilibrage de charge n’est pas utilisé. - Veillez à activer l’activation de groupe prioritaire. Cela configure BIG-IP pour envoyer le trafic vers le ou les serveurs avec la valeur de priorité la plus élevée. Lorsque ces serveurs ne sont pas disponibles, BIG-IP envoie le trafic au serveur ARR avec la valeur de priorité la plus élevée suivante. - Dans ce scénario, le serveur ARR à 10.0.0.1 a une valeur de priorité de 1 et 10.0.0.2 a une valeur de priorité de 2. Tout le trafic sera envoyé à 10.0.0.2 jusqu’à ce qu’il tombe en panne, puis le trafic sera envoyé à 10.0.0.1.
Étape 2 : Configurer le serveur virtuel.
- Dans la section Trafic local, cliquez sur Serveurs virtuels. Cliquez ensuite sur le bouton Créer pour créer un serveur virtuel.
- Tout nom unique fonctionne pour le serveur virtuel ; l’exemple utilise ARR_VS. - Pour la destination, vous pouvez utiliser l’adresse IP vers laquelle les utilisateurs pointent leurs navigateurs. Dans ce cas, nous utilisons . Pour le port de service, nous utilisons « 80 ». - Pour la section Type de serveur virtuel, vous avez plusieurs options. Étant donné que vous dépendez d’ARR pour acheminer, vous pouvez sélectionner le protocole HTTP de performances, qui est conçu pour obtenir les meilleures performances. - Pour le pool par défaut, sélectionnez le pool que vous avez créé à l’étape 1.
- À ce stade, vous devez être en mesure de vous connecter à ce serveur virtuel, qui sera envoyé au serveur ARR approprié.
Option 2 : Actif/Actif dans ARR
En mode Actif/Actif, vous pouvez avoir deux serveurs ARR ou plus. Cette configuration obtient à la fois une haute disponibilité et une scalabilité, contrairement au mode Actif/Passif, ce qui n’atteint que la haute disponibilité. Étant donné que plusieurs serveurs ARR sont configurés de la même façon, une configuration partagée est utilisée. Le BIG-IP F5 est configuré pour équilibrer la charge des requêtes entrantes sur tous les serveurs ARR disponibles et intègres, ce qui transfère à leur tour les requêtes aux serveurs de contenu.
Comme indiqué précédemment, les informations d’état d’exécution du mappage affiné entre les noms d’hôte et les serveurs de contenu sont stockées en mémoire dans une instance d’un serveur ARR. Pour partager ces informations entre plusieurs serveurs ARR, le Cache externe Microsoft pour IIS est utilisé. Pour plus d’informations sur le cache externe, reportez-vous à ce document.
Configuration ARR
La configuration ARR pour Active/Active est identique à celle d’Active/Passive. La principale différence est la configuration de F5.
Étape 1 : Activer la configuration partagée sur deux serveurs ARR.
- Suivez les étapes décrites dans ce document pour configurer la configuration partagée dans IIS.
Étape 2 : Configurer l’architecture de déploiement à 3 niveaux à l’aide d’ARR.
Suivez les étapes décrites dans ce document pour configurer ARR dans l’architecture de déploiement à 3 niveaux.
À un niveau élevé, le document ci-dessus décrit :
- Comment rendre le contenu statique disponible sur le serveur ARR.
- Comment écrire des règles de réécriture d’URL pour le contenu statique afin qu’elles soient traitées directement à partir du serveur ARR.
- Comment écrire des règles de réécriture d’URL pour le contenu dynamique afin qu’elles soient transférées aux serveurs d’applications.
Étape 3 : Activer et configurer le cache externe.
- Suivez les étapes décrites dans ce document pour activer et configurer le cache externe à utiliser avec ARR.
Configuration F5 BIG-IP
Dans ce scénario, tous les serveurs ARR disponibles sont considérés comme actifs et candidats au trafic à charge équilibrée. Utilisez le LTM BIG-IP pour déterminer l’intégrité et les performances du front-end ARR et diriger le trafic vers les meilleures performances.
Étape 1 : Configurer le pool de serveurs ARR.
- Dans la section Trafic local, cliquez sur Pools. Cliquez ensuite sur le bouton Créer pour créer un pool.
- Tout nom unique fonctionne pour le pool ; l’exemple utilise ARR_Pool. - Pour le moniteur d’intégrité, vous pouvez utiliser un moniteur HTTP personnalisé ou le moniteur HTTP par défaut. - Étant donné que vous avez plusieurs serveurs ARR auxquels distribuer le trafic, vous devez sélectionner une méthode d’équilibrage de charge qui convient le mieux à vos besoins. En supposant que tous les serveurs ARR ont des caractéristiques matérielles similaires, une méthode d’équilibrage de charge dynamique, telle que la plus rapide, observée ou prédictive, vous donnera une distribution basée sur les performances.
Étape 2 : Configurer le serveur virtuel.
- Dans la section Trafic local, cliquez sur Serveurs virtuels. Cliquez ensuite sur le bouton Créer pour créer un serveur virtuel.
- Tout nom unique fonctionne pour le serveur virtuel ; l’exemple utilise ARR_VS. - Pour la destination, vous pouvez utiliser l’adresse IP vers laquelle les utilisateurs pointent leurs navigateurs. Dans ce cas, nous utilisons . Pour le port de service, nous utilisons « 80 ». - Pour la section Type de serveur virtuel, vous avez plusieurs options. Étant donné que vous dépendez d’ARR pour acheminer, vous pouvez sélectionner le protocole HTTP de performances, qui est conçu pour obtenir les meilleures performances. - Pour le pool par défaut, sélectionnez le pool que vous avez créé à l’étape 1.
Résumé
Dans ce livre blanc, deux scénarios ARR principaux ont été examinés pour obtenir une haute disponibilité et une scalabilité en déployant plusieurs serveurs ARR et en utilisant F5 BIG-IP.
Annexe
Annexe A : Tous les en-têtes HTTP et variables serveur disponibles pour écrire des règles de décision de routage.
ALL_HTTP | ALL_RAW | APPL_MD_PATH |
---|---|---|
APPL_PHYSICAL_PATH | CERT_COOKIE | CERT_FLAGS |
CERT_ISSUER | CERT_KEYSIZE | CERT_SECRETKEYSIZE |
CERT_SERIALNUMBER | CERT_SERVER_ISSUER | CERT_SERVER_SUBJECT |
CERT_SUBJECT | CONTENT_LENGTH | CONTENT_TYPE |
DOCUMENT_ROOT | GATEWAY_INTERFACE | HTTP_ACCEPT |
HTTP_ACCEPT_ENCODING | HTTP_ACCEPT_LANGUAGE | HTTP_CONNECTION |
HTTP_CONTENT_LENGTH | HTTP_HOST | HTTP_IF_MODIFIED_SINCE |
HTTP_IF_NONE_MATCH | HTTP_REFERER | HTTP_UA_CPU |
HTTP_USER_AGENT | HTTPS | HTTPS_KEYSIZE |
HTTPS_SECRETKEYSIZE | HTTPS_SERVER_ISSUER | HTTPS_SERVER_SUBJECT |
INSTANCE_ID | INSTANCE_META_PATH | LOCAL_ADDR |
PATH_INFO | PATH_TRANSLATED | QUERY_STRING |
REMOTE_ADDR | REMOTE_HOST | REMOTE_PORT |
REMOTE_USER | REQUEST_FILENAME | REQUEST_METHOD |
REQUEST_URI | SCRIPT_FILENAME | SCRIPT_NAME |
SERVER_ADDR | SERVER_NAME | SERVER_PORT |
SERVER_PORT_SECURE | SERVER_PROTOCOL | SERVER_SOFTWARE |
URL |