Heim >PHP-Framework >YII >Was tun, wenn beim Bereitstellen eines yii-Projekts ein 502-Fehler auftritt?

Was tun, wenn beim Bereitstellen eines yii-Projekts ein 502-Fehler auftritt?

藏色散人
藏色散人Original
2020-01-22 16:04:363049Durchsuche

Was tun, wenn beim Bereitstellen eines yii-Projekts ein 502-Fehler auftritt?

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:

Was tun, wenn beim Bereitstellen eines yii-Projekts ein 502-Fehler auftritt?

Siehe Upstream: „fastcgi: //127.0.0.1:9090“ Hier scheint der Port falsch zu sein, also überprüfen Sie die Konfiguration des virtuellen Hosts:

Was tun, wenn beim Bereitstellen eines yii-Projekts ein 502-Fehler auftritt?

Schauen Sie sich noch einmal die Konfiguration von php-fpm an:

Was tun, wenn beim Bereitstellen eines yii-Projekts ein 502-Fehler auftritt?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn