Maison Opération et maintenance Nginx Comment configurer et optimiser FastCGI dans Nginx

Comment configurer et optimiser FastCGI dans Nginx

May 21, 2023 am 08:16 AM
nginx fastcgi

fastcgi :

fastcgi est développé et amélioré à partir de cgi. Le principal inconvénient de la méthode d'interface cgi traditionnelle est la faible performance, car chaque fois que le serveur http rencontre un programme dynamique, l'analyseur de script doit être redémarré pour effectuer l'analyse, puis les résultats sont renvoyés au serveur http. Ceci est presque indisponible lorsqu’il s’agit d’un accès simultané élevé. De plus, la méthode d'interface cgi traditionnelle est peu sécurisée et est rarement utilisée aujourd'hui. Le mode d'interface

fastcgi adopte la structure c/s, qui peut séparer le serveur http et le serveur d'analyse de script, et démarrer un ou plusieurs démons d'analyse de script sur le serveur d'analyse de script. Chaque fois que le serveur http rencontre un programme dynamique, celui-ci peut être transmis directement au processus fastcgi pour exécution, puis le résultat est renvoyé au navigateur. Cette méthode permet au serveur http de traiter exclusivement les requêtes statiques ou de renvoyer les résultats du serveur de script dynamique au client, ce qui améliore considérablement les performances de l'ensemble du système d'application.

nginx ne prend pas en charge l'appel direct ou l'analyse de programmes externes. Tous les programmes externes (y compris PHP) doivent être appelés via l'interface fastcgi. L'interface fastcgi est une socket sous Linux (cette socket peut être une socket file ou une socket ip). Pour appeler un programme cgi, un wrapper fastcgi est également nécessaire (un wrapper peut être compris comme un programme utilisé pour démarrer un autre programme). Ce wrapper est lié à un socket fixe, tel qu'un port ou un socket de fichier. Lorsque nginx envoie une requête cgi à ce socket, via l'interface fastcgi, le wrapper reçoit la requête puis génère un nouveau thread. Ce thread appelle l'interpréteur ou le programme externe pour traiter le script et lire les données de retour, puis le wrapper. les données renvoyées sont transmises à nginx via le socket fixe via l'interface fastcgi ; enfin, nginx envoie les données renvoyées au client. Il s'agit de l'ensemble du processus de fonctionnement de nginx+fastcgi. Le processus détaillé est tel qu’illustré sur la figure.

Comment configurer et optimiser FastCGI dans Nginx

Exemple :

Comment configurer et optimiser FastCGI dans Nginx

paramètres fastcgi dans nginx Exemple de configuration d'optimisation

Après avoir configuré nginx+fastcgi, afin d'assurer le fonctionnement rapide et stable de l'environnement php sous nginx, quelques instructions d'optimisation fastcgi doivent être ajoutées. Un exemple d'optimisation est donné ci-dessous. Ajoutez le code suivant au niveau http dans le fichier de configuration principal de nginx.

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=test:10m inactive=5m; 
fastcgi_connect_timeout 300; 
fastcgi_send_timeout 300; 
fastcgi_read_timeout 300; 
fastcgi_buffer_size 64k; 
fastcgi_buffers 4 64k; 
fastcgi_busy_buffers_size 128k; 
fastcgi_temp_file_write_size 128k; 
fastcgi_cache test; 
fastcgi_cache_valid 200 302 1h; 
fastcgi_cache_valid 301 1d; 
fastcgi_cache_valid any 1m;
Copier après la connexion

La signification du code ci-dessus :

  • Dans la première ligne de code, le chemin du fichier, le niveau de structure des répertoires et la clé de le cache fastcgi est défini sur le temps de stockage de la zone Word et le temps de suppression des données inactives.

  • fastcgi_connect_timeout spécifie le délai d'expiration de la connexion au backend fastcgi.

  • fastcgi_send_timeout spécifie le délai d'attente pour l'envoi des requêtes à fastcgi. Cette valeur est le délai d'attente pour l'envoi des requêtes à fastcgi après que deux poignées de main ont été terminées.

  • fastcgi_read_timeout spécifie le délai d'attente pour recevoir les réponses fastcgi. Cette valeur est le délai d'attente pour recevoir les réponses fastcgi après deux poignées de main.

  • fastcgi_buffer_size est utilisé pour spécifier la taille d'un tampon est nécessaire pour lire la première partie de la réponse fastcgi. Cette valeur indique qu'un tampon de 64 Ko sera utilisé pour lire le. première partie de la réponse (en-tête de réponse), peut être définie sur la taille du tampon spécifiée par l'option fastcgi_buffers.

  • fastcgi_buffers spécifie combien et quelle taille de tampons sont nécessaires localement pour mettre en mémoire tampon les demandes de réponse fastcgi. Si la taille de la page générée par un script php est de 256 Ko, alors quatre tampons de 64 Ko seront alloués pour la mise en cache ; si la taille de la page est supérieure à 256 Ko, alors la partie supérieure à 256 Ko sera mise en cache dans le chemin spécifié par fastcgi_temp, mais c'est Ce n'est pas une bonne approche, car les données peuvent être traitées plus rapidement en mémoire que sur un disque dur. Généralement, cette valeur doit être la valeur moyenne de la taille de page générée par les scripts PHP du site. Si la taille de page générée par la plupart des scripts du site est de 256 Ko, cette valeur peut être définie sur « 16 16 Ko », « 4 ». 64k", etc.

  • La valeur par défaut de fastcgi_busy_buffers_size est deux fois la taille de fastcgi_buffers.

  • fastcgi_temp_file_write_size indique la taille d'un bloc de données utilisé lors de l'écriture des fichiers de cache. La valeur par défaut est le double de celle de fastcgi_buffers.

  • Activer le cache fastcgi et le nommer fait référence au rôle de fastcgi_cache. L'activation du cache est très utile, elle peut réduire efficacement la charge sur le processeur et empêcher les erreurs 502 de se produire, mais l'activation du cache peut également causer de nombreux problèmes, selon la situation spécifique.

  • fastcgi_cache_valid, fastcgi est utilisé pour spécifier le temps de cache du code de réponse. La valeur dans l'exemple indique que les réponses 200 et 302 seront mises en cache pendant une heure, et la réponse 301 sera mise en cache pendant 1 jour. Les autres réponses sont mises en cache pendant 1 minute.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment vérifier si Nginx est démarré Comment vérifier si Nginx est démarré Apr 14, 2025 pm 01:03 PM

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Comment configurer Nginx dans Windows Comment configurer Nginx dans Windows Apr 14, 2025 pm 12:57 PM

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Comment vérifier si Nginx est démarré? Comment vérifier si Nginx est démarré? Apr 14, 2025 pm 12:48 PM

Dans Linux, utilisez la commande suivante pour vérifier si Nginx est démarré: SystemCTL Status Nginx Juges Basé sur la sortie de la commande: si "Active: Active (Running)" s'affiche, Nginx est démarré. Si "Active: Inactive (Dead)" est affiché, Nginx est arrêté.

Comment démarrer Nginx dans Linux Comment démarrer Nginx dans Linux Apr 14, 2025 pm 12:51 PM

Étapes pour démarrer Nginx dans Linux: Vérifiez si Nginx est installé. Utilisez SystemCTL Start Nginx pour démarrer le service NGINX. Utilisez SystemCTL Activer Nginx pour activer le démarrage automatique de Nginx au démarrage du système. Utilisez SystemCTL Status Nginx pour vérifier que le démarrage est réussi. Visitez http: // localhost dans un navigateur Web pour afficher la page de bienvenue par défaut.

Comment démarrer le serveur Nginx Comment démarrer le serveur Nginx Apr 14, 2025 pm 12:27 PM

Le démarrage d'un serveur Nginx nécessite différentes étapes en fonction des différents systèmes d'exploitation: Système Linux / Unix: Installez le package NGINX (par exemple, en utilisant Apt-Get ou Yum). Utilisez SystemCTL pour démarrer un service NGINX (par exemple, sudo systemctl start nginx). Système Windows: téléchargez et installez les fichiers binaires Windows. Démarrer Nginx à l'aide de l'exécutable Nginx.exe (par exemple, nginx.exe -c conf \ nginx.conf). Peu importe le système d'exploitation que vous utilisez, vous pouvez accéder au serveur IP

Comment résoudre l'erreur Nginx403 Comment résoudre l'erreur Nginx403 Apr 14, 2025 pm 12:54 PM

Le serveur n'a pas l'autorisation d'accéder à la ressource demandée, ce qui donne une erreur NGINX 403. Les solutions incluent: vérifier les autorisations de fichiers. Vérifiez la configuration .htaccess. Vérifiez la configuration de Nginx. Configurez les autorisations Selinux. Vérifiez les règles du pare-feu. Dépanner d'autres causes telles que les problèmes de navigateur, les défaillances du serveur ou d'autres erreurs possibles.

Comment résoudre le problème du domaine croisé nginx Comment résoudre le problème du domaine croisé nginx Apr 14, 2025 am 10:15 AM

Il existe deux façons de résoudre le problème du domaine transversal NGINX: modifiez les en-têtes de réponse transversale: ajoutez des directives pour autoriser les demandes de domaine croisé, spécifier des méthodes et des en-têtes autorisés et définir le temps du cache. Utilisez le module CORS: Activez les modules et configurez les règles CORS pour permettre des demandes, des méthodes, des en-têtes et du temps de cache.

Comment résoudre l'erreur Nginx304 Comment résoudre l'erreur Nginx304 Apr 14, 2025 pm 12:45 PM

Réponse à la question: 304 Erreur non modifiée indique que le navigateur a mis en cache la dernière version de ressource de la demande du client. Solution: 1. Effacer le cache du navigateur; 2. Désactiver le cache du navigateur; 3. Configurer Nginx pour permettre le cache client; 4. Vérifier les autorisations du fichier; 5. Vérifier le hachage du fichier; 6. Désactiver le CDN ou le cache proxy inversé; 7. Redémarrez Nginx.

See all articles