web-dev-qa-db-fra.com

Quelle langue sont les fichiers de conf nginx?

Je veux écrire des conditions plus complexes dans mes fichiers de configuration Nginx mais je ne suis pas sûr de la syntaxe et je ne trouve pas de documents décrivant ce que vous pouvez faire au-delà des bases dans les exemples et je n'arrive pas à trouver cela sur le Forums Nginx ou sur la liste de diffusion.

Par exemple, est-il possible pour moi d'avoir une condition unless?

55
JP Silvashy

Je suis donc un débutant à nginx et j'ai eu la même question. Il s'avère que la syntaxe du langage comme mentionné ci-dessus est à la fois personnalisée et en fait assez simple. La syntaxe est capturée dans une section dans les documents NGINX, et répétée ici pour plus de commodité:

nginx se compose de modules contrôlés par des directives spécifiées dans le fichier de configuration. Les directives sont divisées en directives simples et directives de bloc. Une directive simple se compose du nom et des paramètres séparés par des espaces et se termine par un point-virgule (;). Une directive de bloc a la même structure qu'une directive simple, mais au lieu du point-virgule, elle se termine par un ensemble d'instructions supplémentaires entourées d'accolades ({et}). Si une directive de bloc peut avoir d'autres directives à l'intérieur des accolades, elle est appelée un contexte (exemples: événements, http, serveur et emplacement).

Les directives placées dans le fichier de configuration en dehors de tout contexte sont considérées comme étant dans le contexte principal. Les événements et les directives http résident dans le contexte principal, le serveur dans http et l'emplacement dans le serveur.

Le reste d'une ligne après le signe # est considéré comme un commentaire.

En résumé: Tout dans un fichier de configuration NGINX est une directive qui peut référencer une variable. Toutes les directives sont répertoriées alphabétiquement ici , et toutes les variables sont répertoriées alphabétiquement ici . La configuration NGINX est pilotée par modules qui implémentent chacun une certaine fonctionnalité, et chaque module contribue directives et variables qui deviennent disponibles pour une utilisation dans la configuration. C'est tout.

C'est pourquoi même if - qui ressemble à un mot-clé comme dans un langage de programmation traditionnel - n'est en fait qu'une directive apportée par le ngx_http_rewrite_modulemodule .

J'espère que cela t'aides!

PS - Consultez également https://devdocs.io/ , et en particulier https://devdocs.io/nginx , pour un beaucoup façon améliorée de rechercher/utiliser la documentation NGINX.

15
scorpiodawg

Les fichiers de conf Nginx sont écrits dans leur propre langue ou syntaxe. J'ai inclus certaines des bases ci-dessous. Ce sont mes propres notes personnelles tirées de Mastering Nginx

Format de base

le fichier de base est divisé en sections

:

<section> {

  <directive> <parameters>; 

}

Paramètres globaux

Non défini dans le format standard décrit ci-dessus, il n'a pas de section globale {} autour. Il est placé en haut du fichier de configuration

Paramètres mondiaux importants

utilisateur - utilisateur et groupe exécutés par les processus de travail. Si le groupe a omis, il est égal à celui utilisé par l'utilisateur

worker_processes - le nombre de processus de travail démarrés. Ils gèrent les connexions des clients. en règle générale, pour les charges liées au processeur, cela devrait égaler le nombre de processeurs et pour les charges liées aux E/S multiplié par 1,5 ou 2

error_log - emplacements des error_logs. peut être écrasé dans les directives. Un deuxième paramètre indique le niveau de débogage du journal (uniquement disponible lors du débogage du module configuré lors de la compilation), info, notice, warn, error, crit, alert and emerg.

pid - le fichier dans lequel l'ID de processus du processus principal est écrit, écrasant la valeur par défaut compilée.

worker_connections - configure le nombre maximum de connexions simultanées qu'un processus de travail peut avoir ouvert. Particulièrement important sur les serveurs proxy inversés - certains réglages supplémentaires peuvent être nécessaires au niveau du système d'exploitation afin d'atteindre ce nombre de connexions simultanées.

L'utilisation des fichiers include peut être utilisée n'importe où dans votre fichier de configuration

inclure /opt/local/etc/nginx/mime.types;

Un caractère générique peut apparaître dans le chemin pour correspondre à plusieurs fichiers: include /opt/local/etc/nginx/vhost/*.conf;

Un fichier de configuration peut être facilement testé en appelant NGINX comme suit: nginx -t -c

La section Http sera la section la plus utilisée.

23
Stefan Thorpe

Les fichiers de configuration Nginx sont écrits dans une langue (si vous voulez l'appeler) conçue et implémentée pour les fichiers de configuration Nginx. Il y a de fortes chances que la documentation soit la seule référence disponible au-delà de la source elle-même. Je commencerais soit par poster un message sur l'un des forums Nginx soit par rejoindre la liste de diffusion Nginx et à y demander. Bien sûr, vous pouvez également récupérer la source et commencer par là.

Bonne chance.

8
D.Shawley