Was soll ich tun, wenn beim Bereitstellen eines yii-Projekts ein 502-Fehler auftritt?
Erinnern Sie sich an die Fehlerbehebung des 502 Bad Gateway-Fehlers, als Nginx das yii2-Projekt bereitstellte
Ich hatte am Samstag nichts zu tun, also habe ich versucht, und zu installieren Bereitstellung von yii2. Während des Installationsprozesses gab es kein Problem, aber bei der Bereitstellung auf Nginx stieß ich auf ein 502-Fehler-Gateway-Problem, dessen Lösung lange dauerte. Dieses Problem ist mir bei der Bereitstellung von yii2 noch nie begegnet, daher notiere ich es hier als Referenz.
Empfohlene Tutorials zu verwandten Artikeln: yii-Tutorial
1. Installations- und Bereitstellungsumgebung
Betriebssystem: macOS, PHP-Version :5.6, Nginx-Version: 1.10.1, YII2-Version: 2.0.
2. Installation von yii2
Die Installation von yii2 ist sehr einfach, lesen Sie einfach das Handbuch auf der offiziellen Website. Was ich hier installiert habe, ist yii2-app-advanced (Yii 2 Advanced Project Template). Befolgen Sie einfach die Installationsanweisungen in der README-Datei. Ich werde nicht näher darauf eingehen.
3. Bereitstellung von yii2 auf nginx
Tatsächlich wurde in der README-Datei des yii2-app-advanced-Projekts bereits sehr deutlich dargelegt, wie die Bereitstellung auf nginx erfolgen soll Die Schritte sollten kein Problem sein. Aber ich war während der Bereitstellung faul und habe direkt die Nginx-Bereitstellungsparameter in der README-Datei verwendet, was zu einem 502 Bad Gateway-Fehler führte.
Die Antwortcodes, die im HTTP-Statuscode mit 5 beginnen, werden alle serverseitig verursacht. Sehen Sie sich daher das Nginx-Protokoll an:
Fehlerprotokoll:
Siehe Upstream: „fastcgi: //127.0.0.1:9090“ Hier scheint der Port falsch zu sein, also überprüfen Sie die Konfiguration des virtuellen Hosts:
Schauen Sie sich noch einmal die Konfiguration von php-fpm an:
Natürlich ist es so ist der vom virtuellen Nginx-Host angegebene FastCGI-Server. Der Überwachungsport ist falsch, was dazu führt, dass Nginx keine Antwort vom FastCGI-Server erhält. Wenn der Browser also eine Anfrage stellt, gibt nginx einen 502-Statuscode an den Browser zurück und teilt dem Browser mit, dass der Upstream-FastCGI-Server nicht geantwortet hat.
4. Lösung
Ändern Sie im virtuellen Nginx-Host den durch fastcgi_pass angegebenen Port korrekt, und dieser Fehler wird behoben.
5, Zusammenfassung
(1) Fehler, die mit dem HTTP-Statuscode 5 beginnen, werden von der Serverseite verursacht, und 502 Bad Gateway wird durch die Arbeit als Gateway oder verursacht Proxy. Der Server (Webserver) hat beim Versuch, die Anfrage auszuführen, eine ungültige Antwort vom Upstream-Server (Fastcgi-Server) erhalten.
(2) fastcgi_pass ist eine Konfigurationsanweisung des Moduls ngx_http_fastcgi_module. Sie gibt die Adresse des fastcgi-Servers an. Die Beschreibung im Nginx-Dokument lautet wie folgt:
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.
Das obige ist der detaillierte Inhalt vonWas tun, wenn beim Bereitstellen eines yii-Projekts ein 502-Fehler auftritt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!