Quelle est la structure du fichier de configuration nginx ?
May 11, 2023 pm 09:28 PMFonctions communes de Nginx
1. proxy http, proxy inverse : comme l'une des fonctions les plus couramment utilisées des serveurs Web, en particulier le proxy inverse.
Ici, je vais vous donner deux photos pour expliquer l'agent positif et l'agent réactif. Vous pouvez lire les informations pour les détails spécifiques.
nginx offre des performances stables lorsqu'il est utilisé comme proxy inverse et peut fournir des fonctions de transfert avec une configuration flexible. nginx peut adopter différentes stratégies de transfert basées sur différentes correspondances régulières. Par exemple, le serveur de fichiers à la fin du fichier image et le serveur Web pour les pages dynamiques, tant que vos règles habituelles sont écrites correctement et qu'il existe une solution de serveur correspondante. vous pouvez faire ce que vous voulez du jeu. Et nginx effectue un saut de page d'erreur, un jugement d'exception, etc. sur les résultats renvoyés. Si le serveur distribué est anormal, il peut retransmettre la requête vers un autre serveur puis supprimer automatiquement le serveur anormal.
2. équilibrage de charge
nginx propose deux types de stratégies d'équilibrage de charge?: la stratégie intégrée et la stratégie étendue. Les stratégies intégrées sont l'interrogation, l'interrogation pondérée et le hachage IP. La stratégie d'expansion est aussi imaginative qu'inimaginable. Il n'y a rien auquel vous ne puissiez penser qu'elle ne puisse faire. Vous pouvez vous référer à tous les algorithmes d'équilibrage de charge pour les trouver un par un et les implémenter.
Les trois images ci-dessus, comprennent la mise en ?uvre de ces trois algorithmes d'équilibrage de charge
algorithme de hachage IP, effectue une opération de hachage sur l'IP demandée par le client, puis distribue la demande pour la même IP client au même client basé sur le résultat du hachage. Le traitement sur un serveur peut résoudre le problème de la session non partagée.
3. Mise en cache Web
nginx peut effectuer différents traitements de cache sur différents fichiers, avec une configuration flexible, et prend en charge fastcgi_cache, qui est principalement utilisé pour mettre en cache les programmes dynamiques fastcgi. En coopération avec le tiers ngx_cache_purge, le contenu du cache d'URL spécifié peut être ajouté et supprimé pour être géré.
4. Adresse associée à nginx
Code source :
Site officiel :
Structure du fichier de configuration nginx
Si vous avez téléchargé votre fichier d'installation, vous souhaiterez peut-être ouvrir le fichier nginx.conf dans le dossier conf, La configuration de base du serveur nginx et la configuration par défaut sont également stockées ici.
Dans le bit de symbole de commentaire de nginx.conf#
La structure du fichier nginx, les étudiants qui débutent peuvent y jeter un deuxième regard.
Configuration par défaut
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the php scripts to apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the php scripts to fastcgi server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param script_filename /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of ip-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # https server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:ssl:1m; # ssl_session_timeout 5m; # ssl_ciphers high:!anull:!md5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
Structure de fichier nginx
... #全局塊 events { #events塊 ... } http #http塊 { ... #http全局塊 server #server塊 { ... #server全局塊 location [pattern] #location塊 { ... } location [pattern] { ... } } server { ... } ... #http全局塊 }
1. Bloc global?: configurez les instructions qui affectent nginx globalement. Généralement, il existe un groupe d'utilisateurs pour exécuter le serveur nginx, le chemin de stockage du pid du processus nginx, le chemin de stockage des journaux, l'introduction du fichier de configuration, le nombre de processus de travail autorisés à être générés, etc.
2. Bloc événements?: La configuration affecte le serveur nginx ou la connexion réseau avec l'utilisateur. Il existe un nombre maximum de connexions par processus, quel modèle basé sur les événements choisir pour gérer les demandes de connexion, s'il faut autoriser l'acceptation simultanée de plusieurs connexions réseau, activer la sérialisation de plusieurs connexions réseau, etc.
3. Bloc http?: Vous pouvez imbriquer plusieurs serveurs, configurer des proxys, des caches, des définitions de journaux et d'autres fonctions et configurations de modules tiers. Tels que l'introduction du fichier, la définition du type MIME, la personnalisation du journal, l'utilisation ou non de sendfile pour transférer des fichiers, le délai d'expiration de la connexion, le nombre de demandes de connexion uniques, etc.
4. Bloc serveur?: configurez les paramètres pertinents de l'h?te virtuel. Il peut y avoir plusieurs serveurs dans un seul http.
5. Bloc localisation : Configurez le routage des demandes et le traitement des différentes pages.
Ce qui suit est un fichier de configuration pour tout le monde, pour comprendre, et il est également installé sur une machine de test que j'ai construite pour vous donner un exemple.
########### 每個(gè)指令必須有分號(hào)結(jié)束。################# #user administrator administrators; #配置用戶或者組,默認(rèn)為nobody nobody。 #worker_processes 2; #允許生成的進(jìn)程數(shù),默認(rèn)為1 #pid /nginx/pid/nginx.pid; #指定nginx進(jìn)程運(yùn)行文件存放地址 error_log log/error.log debug; #制定日志路徑,級(jí)別。這個(gè)設(shè)置可以放入全局塊,http塊,server塊,級(jí)別以此為:debug|info|notice|warn|error|crit|alert|emerg events { accept_mutex on; #設(shè)置網(wǎng)路連接序列化,防止驚群現(xiàn)象發(fā)生,默認(rèn)為on multi_accept on; #設(shè)置一個(gè)進(jìn)程是否同時(shí)接受多個(gè)網(wǎng)絡(luò)連接,默認(rèn)為off #use epoll; #事件驅(qū)動(dòng)模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 1024; #最大連接數(shù),默認(rèn)為512 } http { include mime.types; #文件擴(kuò)展名與文件類型映射表 default_type application/octet-stream; #默認(rèn)文件類型,默認(rèn)為text/plain #access_log off; #取消服務(wù)日志 log_format myformat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定義格式 access_log log/access.log myformat; #combined為日志格式的默認(rèn)值 sendfile on; #允許sendfile方式傳輸文件,默認(rèn)為off,可以在http塊,server塊,location塊。 sendfile_max_chunk 100k; #每個(gè)進(jìn)程每次調(diào)用傳輸數(shù)量不能大于設(shè)定的值,默認(rèn)為0,即不設(shè)上限。 keepalive_timeout 65; #連接超時(shí)時(shí)間,默認(rèn)為75s,可以在http,server,location塊。 upstream mysvr { server 127.0.0.1:7878; server 192.168.10.121:3333 backup; #熱備 } error_page 404 https://www.baidu.com; #錯(cuò)誤頁(yè) server { keepalive_requests 120; #單連接請(qǐng)求上限次數(shù)。 listen 4545; #監(jiān)聽(tīng)端口 server_name 127.0.0.1; #監(jiān)聽(tīng)地址 location ~*^.+$ { #請(qǐng)求的url過(guò)濾,正則匹配,~為區(qū)分大小寫,~*為不區(qū)分大小寫。 #root path; #根目錄 #index vv.txt; #設(shè)置默認(rèn)頁(yè) proxy_pass http://mysvr; #請(qǐng)求轉(zhuǎn)向mysvr 定義的服務(wù)器列表 deny 127.0.0.1; #拒絕的ip allow 172.18.5.54; #允許的ip } } }
Ce qui précède est la configuration de base de nginx Vous devez faire attention aux points suivants :
1.$remote_addr et $http_x_forwarded_for sont utilisés pour enregistrer l'adresse IP du client ; pour enregistrer le nom de l'utilisateur client ; 3.$time_local : utilisé pour enregistrer l'heure d'accès et le fuseau horaire ; 4.$request : utilisé pour enregistrer l'URL et le protocole http de la requête
5.$status : utilisé pour enregistrer le nom de l'utilisateur client ; le statut de la demande est de 200, 6.$ body_bytes_s ent?: enregistre la taille du contenu principal du fichier envoyé au client?; 7. $http_referer?: utilisé pour enregistrer le lien accédé à partir de cette page?; informations du navigateur client?;
2. Phénomène de troupeau choquant : Lorsqu'une connexion réseau arrive, plusieurs processus en veille sont réveillés par des collègues, mais un seul processus peut obtenir la connexion, ce qui affectera les performances du système.
3. Chaque commande doit se terminer par un point-virgule.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Nginx convient plus à la gestion des connexions simultanées élevées, tandis qu'Apache convient plus aux scénarios où des configurations complexes et des extensions de module sont nécessaires. 1.Nginx est connu pour ses performances élevées et sa faible consommation de ressources, et convient à une concurrence élevée. 2.Apache est connu pour sa stabilité et ses riches extensions de modules, qui conviennent aux besoins de configuration complexes.

Nginx et Apache ont chacun leurs propres avantages et inconvénients, et le choix doit être basé sur des besoins spécifiques. 1.Nginx convient aux scénarios de concurrence élevés en raison de son architecture asynchrone non bloquant. 2. Apache convient aux scénarios à faible monnaie qui nécessitent des configurations complexes, en raison de sa conception modulaire.

Le code PHP peut être exécuté de plusieurs manières: 1. Utilisez la ligne de commande pour entrer directement le "nom de fichier PHP" pour exécuter le script; 2. Mettez le fichier dans le répertoire racine du document et accédez-y via le navigateur via le serveur Web; 3. Exécutez-le dans l'IDE et utilisez l'outil de débogage intégré; 4. Utilisez le bac à sable PHP en ligne ou la plate-forme d'exécution de code pour les tests.

La compréhension du chemin du fichier de configuration de Nginx et des paramètres initiaux est très importante car il s'agit de la première étape dans l'optimisation et la gestion d'un serveur Web. 1) Le chemin du fichier de configuration est généralement /etc/nginx/nginx.conf. La syntaxe peut être trouvée et testée à l'aide de la commande nginx-t. 2) Les paramètres initiaux incluent les paramètres globaux (tels que l'utilisateur, worker_processs) et les paramètres HTTP (tels que l'inclusion, log_format). Ces paramètres permettent la personnalisation et l'extension en fonction des exigences. Une configuration incorrecte peut entra?ner des problèmes de performances et des vulnérabilités de sécurité.

Linux System restreint les ressources utilisateur via la commande UliMIT pour éviter une utilisation excessive des ressources. 1.Ulimit est une commande shell intégrée qui peut limiter le nombre de descripteurs de fichiers (-n), la taille de la mémoire (-v), le nombre de threads (-u), etc., qui sont divisés en limite douce (valeur effective actuelle) et limite dure (limite supérieure maximale). 2. Utilisez directement la commande ulimit pour une modification temporaire, telle que Ulimit-N2048, mais elle n'est valable que pour la session en cours. 3. Pour un effet permanent, vous devez modifier /etc/security/limits.conf et les fichiers de configuration PAM, et ajouter SessionRequiredPam_limits.so. 4. Le service SystemD doit définir Lim dans le fichier unitaire

Lors de la configuration de Nginx sur Debian System, les éléments suivants sont quelques conseils pratiques: la structure de base des paramètres globaux du fichier de configuration: définir les paramètres comportementaux qui affectent l'intégralité du service NGINX, tel que le nombre de threads de travail et les autorisations d'utilisateurs en cours d'exécution. Pièce de gestion des événements: Décider comment Nginx s'occupe des connexions réseau est une configuration clé pour améliorer les performances. Pièce de service HTTP: contient un grand nombre de paramètres liés au service HTTP et peut intégrer plusieurs serveurs et blocs de localisation. Options de configuration de base Worker_Connections: Définissez le nombre maximal de connexions que chaque thread de travailleur peut gérer, généralement définie sur 1024. Multi_accept: activez le mode de réception multi-connexion et améliorez la capacité de traitement simultané. s

Nginxservceswebcontentandactsasareverseproxy, loadBalancer et m /r.1) itefficientlyServisetaticContent likehtmlandimages.2) itfunctionsasareverseproxyandloadBalancer, distribution.

Le diagnostic et les solutions pour les erreurs courantes de Nginx incluent: 1. Afficher les fichiers journaux, 2. Ajuster les fichiers de configuration, 3. Optimiser les performances. En analysant les journaux, en ajustant les paramètres de délai d'expiration et en optimisant le cache et l'équilibrage de la charge, des erreurs telles que 404, 502, 504 peuvent être efficacement résolues pour améliorer la stabilité et les performances du site Web.
