Le jour des soldes
Le premier jour des soldes, le site d'une enseigne de prêt-à-porter reçoit dix fois plus de visites. Un seul serveur ne tiendrait pas.
Pourtant, les clients tapent toujours la même adresse. Derrière, plusieurs serveurs se partagent le travail sans que personne ne le voie. Des machines placées au milieu rendent cela possible.
À la fin de cette leçon
Remarque
Je peux dire ce que font un proxy, un proxy inverse et un répartiteur de charge.
Mots clés
| Mot | Ce que ça veut dire |
|---|---|
| Intermédiaire | une machine placée entre le client et le serveur |
| Proxy | un intermédiaire qui sort sur internet pour les postes |
| Proxy inverse | un intermédiaire placé devant les serveurs d’un site |
| Répartiteur de charge | un intermédiaire qui partage les requêtes entre serveurs |
| Contrôle de santé | une vérification régulière qu’un serveur répond |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Un proxy sort sur internet pour les postes
Dans beaucoup d'entreprises, les postes ne vont pas directement sur internet. Ils passent par un proxy.
Le poste demande la page au proxy, et le proxy va la chercher. Le site voit l'adresse du proxy, pas celle du poste. L'entreprise s'en sert pour bloquer certains sites, garder un journal et mettre des pages en cache.
Essayez : le filtre du proxy
# Le proxy de l'entreprise compare chaque site demandé à une liste
bloques = ["jeux-en-ligne.example", "streaming.example"]
demande = "fournisseur-bureau.example"
if demande in bloques:
print(demande, ": bloqué par le proxy")
else:
print(demande, ": autorisé, le proxy va le chercher pour vous")
# Remplacez la demande par "streaming.example", puis cliquez sur Exécuter.
Un proxy inverse protège les serveurs
Le proxy inverse est placé de l'autre côté, devant les serveurs d'un site. Les clients ne parlent qu'à lui.
Il reçoit les connexions HTTPS et s'occupe du certificat. Il transmet ensuite chaque requête au bon serveur interne. Les serveurs restent cachés et n'ont pas d'adresse publique. Nginx est un proxy inverse très répandu.
Trois intermédiaires côte à côte
| Intermédiaire | Où il se place | Pour qui il travaille | Exemple au travail |
|---|---|---|---|
| Proxy | Entre les postes et internet | Les salariés | Bloquer les sites de jeux |
| Proxy inverse | Devant les serveurs du site | Le site | Gérer le certificat HTTPS |
| Répartiteur de charge | Devant plusieurs serveurs pareils | Le site | Tenir le jour des soldes |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une erreur fréquente
Attention
Beaucoup pensent qu'un proxy et un proxy inverse sont la même chose. Les deux sont des intermédiaires, mais pas du même côté. Le proxy agit pour les postes qui sortent. Le proxy inverse agit pour le site qui reçoit.
Un répartiteur partage le travail
Le répartiteur de charge envoie chaque requête à l'un des serveurs. La méthode la plus simple est le tourniquet : chacun son tour.
Il lance aussi un contrôle de santé toutes les quelques secondes. Un serveur qui ne répond plus est retiré du tour. Les clients ne voient pas la panne, et l'équipe a le temps de réparer.
Essayez : le tourniquet
serveurs = ["web-1", "web-2", "web-3"]
suivant = 0
# Le répartiteur envoie chaque requête au serveur suivant, chacun son tour
for requete in range(1, 8):
print("Requête", requete, "->", serveurs[suivant])
suivant = suivant + 1
if suivant == len(serveurs):
suivant = 0
# Ajoutez "web-4" à la liste, puis cliquez sur Exécuter.
Exemple : web-2 tombe en panne
| Requête | Serveurs en service | Serveur choisi |
|---|---|---|
| 1 | web-1, web-2, web-3 | web-1 |
| 2 | web-1, web-2, web-3 | web-2 |
| 3 | web-1, web-3 (web-2 retiré) | web-3 |
| 4 | web-1, web-3 | web-1 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.