Outils pour utilisateurs

Outils du site


issue198:c_c

So, after my proofreader had gotten through the last command and conquer paper, he said that he felt a little lost. While that article was intended to be a high level overview and get you interested in having your own web server to play with, so you can create your own web pages, web games or whatever, I will now go over some web server-speak; I’ll focus on Nginx as it is by far the most popular. You may need it to make use of the Nginx documentation, as you, and I, as home users, do not “speak” that lingo. The first thing you will run into will be directives and context. Directives are specific options that get set in the configuration file (not like the tree directives that robots have in Azimov’s tales). There is a name and its value. If you ever read up on programming, think of key-value pairs or dictionary entries. It is similar to an entry in a json file. So you will have something like - domain: google.com, distribution: ubuntu, where “domain” is the name and “google.com” is the value, or “distribution” is the name and “Ubuntu” is the value.

Bon. Après que mon relecteur ait réussi à terminer sa lecture du dernier article de C&C, il a dit qu'il se sentait un peu perdu.

Alors que cet article se voulait être une vue d'ensemble de haut niveau qui allait réveiller en vous l'envie de votre propre serveur Web avec lequel vous pouvez jouer afin de créer vos propres pages Web, jeux Web ou autre, je vais maintenant vous présenter quelques termes du langage du Web. Je me concentrerai sur Nginx, car c'est le plus populaire et de loin. Vous pourriez en avoir besoin pour pouvoir utiliser la documentation de Nginx, puisque vous, et moi, en tant qu'utilisateurs domestiques, ne « parlons » pas ce jargon-là.

La première chose que vous rencontrerez sera des directives et du « context ». Les directives sont des options spécifiques qui sont réglées dans le fichier de configuration (pas comme les directives arborescentes des robots dans les histoires d'Asimov). Il y a un nom et sa valeur. Si jamais vous lisez des choses sur la programmation pensez aux paires clé-valeur ou aux entrées d'un dictionnaire. Ça ressemble à une entrée dans un fichier json. Ainsi, vous aurez quelque chose comme :

domain: google.com

distribution: Ubuntu,

où « domain » est le nom et « google.com » est la valeur ou « distribution » est le nom et « Ubuntu » est la valeur.

Context is a whole section in the configuration that contains directives. The directives in the section set configurations for that context. Clear as mud, eh? Back to our coding example, context is like a block of code, you can have other blocks of code nested within that specific block of code that affects only the enclosing block of code. The same with context. You can have context nested within context, that contain directives specific to that context. Still muddy, eh? Ok, think of paragraphs in a book, except here, whatever happens in that paragraph pertains only to that paragraph. For instance you read how they dig a well in that paragraph, that happens only in that paragraph; if, further in the book, you read about someone digging a well, it has nothing to do with the well that was dug earlier. Though, overall in the story or chapter, there are two wells dug, each paragraph about digging wells knows only about their specific well. Within the context or “paragraph” if I put in - distribution: Ubuntu, (directive) then in another context “paragraph”: I can put in - distribution: Mint, it does not matter, as in that section we call the ‘context’, the key-value pair we call the ‘directive’, pertains only to that ‘context’. If it still is not clear, please send a message to misc@fullcirclemagazine.com

Context est toute une section de la configuration qui contient des directives. Les directives dans la section règlent les configurations pour ce context. Aussi limpide que de l'eau trouble, non ? De retour à notre exemple de codage : context est comme un bloc de code. Vous pouvez avoir d'autres blocs de code imbriqués dans ce bloc de code spécifique qui n'affectent que le bloc de code enfermant. La même chose est vraie avec le context. Vous pouvez avoir du context à l'intérieur d'un context, qui contient des directives spécifiques à ce context-là. L'eau est toujours trouble, non ? OK, pensez à des paragraphes d'un livre, sauf qu'ici, tout ce qui arrive dans ce paragraphe-là n'a trait qu'au même paragraphe. Si, plus loin dans le livre, vous lisez que quelqu'un est en train de creuser un puits, ça n'a rien à voir avec le puits qui était creusé plus tôt. Bien que, globalement dans l'histoire ou le chapitre, deux puits sont creusés, chaque paragraphe concernant l'excavation d'un puits ne connaît que son puits spécifique. À l'intérieur du context ou « paragraphe », si je mets :

distribution: Ubuntu, (directive)

puis dans un autre context « paragraphe », je peux mettre :

distribution: Mint,

cela n'a aucune importance, car dans cette section que nous appelons le « context », la paire clé-valeur que nous appelons la « directive », n'a trait qu'à ce « context » précis.

Si cela n'est toujours pas clair, veuillez envoyer un message à misc@fullcirclemagazine.com

The main configuration file is named the “main context”. Don’t ask, I did not name these things. The main context (aka config file) contains global directives (aka settings) - do I need to bring up local and global variables? You have been following our Python tutorial, haven’t you? Global directives apply to the master process. As I said before, context can be nested, I will highlight a few important ones, so, within the main context, you will find, for instance, the ‘server context’ (where we defined our virtual host). We also have the ‘http context’, for http-related configurations and location context, to match requests incoming to the correct server context. Navigate here: https://nginx.org/en/docs/http/ngx_http_core_module.html#http (see image on previous page) Do you see where this jargon is used? This also tells us where you can find the directives you are looking for (~~hand wavy~~ These are not the ‘droids’ you are looking for!). This is very important, it helps us not only read the documentation correctly, but it also helps us find where our directive should go (shown below).

Le fichier principal de configuration se nomme le « main context ». Ne me posez pas de question, c'est pas moi qui a nommé ces choses. Le main context (alias le fichier config) contient des directives globales (alias paramètres) - ai-je besoin de parler de variables locales et globales ? Vous suivez le tutoriel de Python, n'est-ce pas ? Les directives globales s'appliquent aux processus maître.

Comme j'ai dit auparavant, context peut être imbriqué. Je vais en souligner quelques-uns qui sont importants : ainsi à l'intérieur du main context, vous trouverez, par exemple, le « server context » (où nous avons défini notre hôte virtuel). Nous avons aussi le « http context » pour les configurations liées à http et la « location context » pour envoyer les requêtes qui arrivent vers le « server context » correct.

Naviguez ici : https://nginx.org/en/docs/http/ngx_http_core_module.html#http (voir l'image de la page précédente)

Vous voyez l'utilisation de ce jargon ? Cela nous dit où vous pouvez trouver les directives que vous recherchez (Ce ne sont pas les « droïdes » que vous recherchez !).

C'est très important : il nous aide non seulement à lire la documentation comme il faut, mais aussi à trouver où on doit mettre notre directive (voir ci-dessous).

If we look at the first example, we will find the context says it is in http, server and location, whereas merge_slashes is not found in “location”. Having it in a context where it does not belong, will mean it has no effect. If I have the above configuration in “location” context, it will not affect the “http” context even though they are both in the main context. I hope this has cleared up some of the confusing bits in the series, so if I ever talk about context again while talking about web servers, I mean this ^^^, not some random context or in the context of the article. Have fun with your web servers!

Si nous examinons le premier exemple, nous verrons que le context dit qu'il se trouve dans http, server et location, alors que merge_slashes n'est pas trouvé dans « location ». S'il est placé dans un context impropre, cela signifiera qu'il n'aura aucun effet. Si j'ai la configuration ci-dessus dans le context « location », cela n'affectera pas le context « http » bien qu'ils soient tous les deux dans le context principal.

J'espère que ceci a éclairci certaines des parties déconcertantes de la série. Ainsi, si jamais je parle à nouveau de context tout en parlant de serveurs Web, cela signifie ceci ^^^ et pas un contexte au hasard ou dans le contexte de l'article. Amusez-vous avec vos serveurs Web !

issue198/c_c.txt · Dernière modification : 2023/11/01 16:24 de andre_domenech