L'architecture des services web
La chaîne qui sert un site : serveur web, hôtes virtuels, proxy inverse, serveur d'application, base de données, terminaison TLS et journaux, en deux et trois niveaux.
- 27 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Sur le schéma
- Mises en situation
Quelques cartes du deck
Hôte virtuel : de quoi s'agit-il ?
Voir la réponse
Configuration qui permet à un même serveur de servir plusieurs sites, en choisissant le contenu d'après le nom demandé.
Le nom vient de l'en-tête Host en HTTP ; en HTTPS, il est déjà connu à l'ouverture de la connexion grâce à l'extension SNI, ce qui permet de choisir le bon certificat.
Quel bloc répond à une requête HTTPS portant « Host: wiki.example.org » ?
```text
server { listen 443 ssl; server_name www.example.org; }
server { listen 443 ssl; server_name intranet.example.org; }
server { listen 443 ssl default_server; server_name _; }`- Le troisième, qui est le serveur par défaut
- Le premier, le plus proche du nom demandé
- Le deuxième, car il est écrit juste après
- Aucun : nginx renvoie une erreur 404
Voir la réponse
Le troisième, qui est le serveur par défaut
nginx compare le nom demandé aux server_name. Aucun ne correspond à wiki.example.org : c'est le bloc marqué default_server qui répond, pas le plus ressemblant.
Dans nginx, la directive … choisit le bloc d'après l'en-tête Host, et … transmet la requête à l'application.
Voir la réponse
Dans nginx, la directive server_name choisit le bloc d'après l'en-tête Host, et proxy_pass transmet la requête à l'application.
Les deux se retrouvent dans presque toute configuration de proxy inverse : l'une sélectionne le site, l'autre désigne l'amont.
Proxy inverse : de quoi s'agit-il ?
Voir la réponse
Serveur placé devant d'autres serveurs : il reçoit les requêtes des clients et les transmet à celui qui doit y répondre.
Il agit au nom des serveurs, alors qu'un proxy direct agit au nom des clients. Il sert aussi à répartir la charge, mettre en cache et centraliser TLS.