Que dois-je faire si une erreur 502 se produit lors du déploiement d'un projet yii ?
Rappelez-vous le dépannage de l'erreur 502 bad gateway lorsque nginx a déployé le projet yii2
Je n'avais rien à faire samedi, alors j'ai essayé d'installer et déployer yii2. Il n'y a eu aucun problème pendant le processus d'installation, mais lors du déploiement sur nginx, j'ai rencontré un problème de passerelle 502 incorrecte, qui a pris beaucoup de temps à résoudre. Ce problème est quelque chose que je n'ai jamais rencontré auparavant lors du déploiement de yii2, je le note donc ici pour référence.
Tutoriels d'articles connexes recommandés : Tutoriel yii
1. Environnement d'installation et de déploiement
Système d'exploitation : macOS, version php :5.6, version nginx : 1.10.1, version yii2 : 2.0.
2. Installation de yii2
L'installation de yii2 est très simple, il suffit de se référer au manuel sur le site officiel. Ce que j'ai installé ici est yii2-app-advanced (Yii 2 Advanced Project Template). L'adresse du projet est sur github. Suivez simplement les instructions d'installation dans le README, je n'entrerai pas dans les détails à ce sujet.
3. Déploiement de yii2 sur nginx
En fait, le README du projet yii2-app-advanced a déjà indiqué très clairement comment déployer sur nginx Follow. les étapes. Il ne devrait y avoir aucun problème. Mais j'étais paresseux pendant le déploiement et j'ai directement utilisé les paramètres de déploiement nginx dans le README, ce qui a entraîné une erreur de passerelle incorrecte 502.
Les codes de réponse commençant par 5 dans le code d'état HTTP sont tous provoqués par le côté serveur, alors jetez un œil au journal nginx :
journal des erreurs :
Voir en amont : "fastcgi: //127.0.0.1:9090" Ici, le port semble erroné, vérifiez donc la configuration de l'hôte virtuel :
Regardez à nouveau la configuration de php-fpm :
Effectivement, il est le serveur FastCGI spécifié par l'hôte virtuel nginx. Le port d'écoute est incorrect, ce qui empêchera nginx d'obtenir une réponse du serveur FastCGI. Ainsi, lorsque le navigateur fait une requête, nginx renvoie un code d'état 502 au navigateur, indiquant au navigateur que le serveur FastCGI en amont n'a pas répondu.
4. Solution
Dans l'hôte virtuel nginx, modifiez correctement le port spécifié par fastcgi_pass, et cette erreur sera résolue.
5, résumé
(1) Les erreurs commençant par le code d'état HTTP 5 sont causées par le côté serveur, et 502 une mauvaise passerelle est causée par le fonctionnement en tant que passerelle ou proxy. Le serveur (serveur Web) a reçu une réponse non valide du serveur en amont (serveur fastcgi) lors de la tentative d'exécution de la requête.
(2) fastcgi_pass est une directive de configuration du module ngx_http_fastcgi_module Elle précise l'adresse du serveur fastcgi. Sa description dans le document nginx est la suivante :
Syntax: fastcgi_pass address; Default: — Context: location, if in location Sets the address of a FastCGI server. The address can be specified as a domain name or IP address, and a port: fastcgi_pass localhost:9000; or as a UNIX-domain socket path: fastcgi_pass unix:/tmp/fastcgi.socket; If a domain name resolves to several addresses, all of them will be used in a round-robin fashion. In addition, an address can be specified as a server group.
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!