ホームページ  >  記事  >  PHPフレームワーク  >  yii プロジェクトをデプロイするときに 502 エラーが発生した場合の対処方法

yii プロジェクトをデプロイするときに 502 エラーが発生した場合の対処方法

藏色散人
藏色散人オリジナル
2020-01-22 16:04:362935ブラウズ

yii プロジェクトをデプロイするときに 502 エラーが発生した場合の対処方法

yii プロジェクトをデプロイするときに 502 エラーが発生した場合はどうすればよいですか?

nginx が yii2 プロジェクトをデプロイしたときの 502 不正なゲートウェイ エラーのトラブルシューティングを思い出してください

土曜日は何もすることがなかったので、インストールしてデプロイしようとしましたyii2. インストールプロセス中は問題ありませんでしたが、nginx にデプロイすると 502 不正なゲートウェイの問題が発生し、解決に時間がかかりました。この問題は、yii2 をデプロイするときにこれまでに遭遇したことがないものなので、参考のためにここに書き留めておきます。

推奨関連記事チュートリアル: yii チュートリアル

1、インストールおよび展開環境

オペレーティング システム: macOS、php バージョン:5.6、nginxバージョン:1.10.1、yii2バージョン:2.0。

2、yii2 のインストール

yii2 のインストールは非常に簡単で、公式 Web サイトのマニュアルを参照するだけです。ここでインストールしたのは yii2-app-advanced (Yii 2 Advanced Project Template) です。プロジェクトのアドレスは github にあります。README のインストール手順に従ってください。詳細については説明しません。

3、nginx への yii2 のデプロイメント

実際、yii2-app-advanced プロジェクトの README には、nginx へのデプロイ方法がすでに明確に記載されています。手順 問題ないはずです。しかし、私はデプロイ中に怠けていて、README にある nginx デプロイ パラメータを直接使用したため、502 不正なゲートウェイ エラーが発生しました。

HTTP ステータス コードの 5 で始まる応答コードはすべてサーバー側が原因であるため、nginx ログを確認してください:

エラー ログ:

yii プロジェクトをデプロイするときに 502 エラーが発生した場合の対処方法

アップストリームを参照:「fastcgi: //127.0.0.1:9090」 ここでは、ポートが間違っているようですので、仮想ホストの構成を確認してください:

yii プロジェクトをデプロイするときに 502 エラーが発生した場合の対処方法

php-fpm の設定をもう一度見てください:

yii プロジェクトをデプロイするときに 502 エラーが発生した場合の対処方法

案の定、それはnginx 仮想ホストによって指定された FastCGI サーバーです。リスニング ポートが間違っているため、nginx が FastCGI サーバーから応答を取得できなくなります。したがって、ブラウザがリクエストを行うと、nginx は 502 ステータス コードをブラウザに返し、上流の FastCGI サーバーが応答しなかったことをブラウザに伝えます。

4、解決策

nginx 仮想ホストで、fastcgi_pass で指定されたポートを正しく変更すると、このエラーは解決されます。

5、概要

(1) HTTP ステータス コード 5 で始まるエラーはサーバー側が原因で発生しますが、502 不良ゲートウェイはゲートウェイとして動作しているか、またはゲートウェイとして動作していることが原因で発生します。プロキシ。サーバー (Web サーバー) は、リクエストを実行しようとしたときに、上流のサーバー (fastcgi サーバー) から無効な応答を受け取りました。

(2) fastcgi_pass は ngx_http_fastcgi_module モジュールの構成ディレクティブです。fastcgi サーバーのアドレスを指定します。nginx ドキュメントでの説明は次のとおりです:

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.

以上がyii プロジェクトをデプロイするときに 502 エラーが発生した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。