ホームページ  >  記事  >  php教程  >  nginx が yii2 プロジェクトをデプロイするときは、502 不正なゲートウェイ エラーのトラブルシューティングを忘れないでください。

nginx が yii2 プロジェクトをデプロイするときは、502 不正なゲートウェイ エラーのトラブルシューティングを忘れないでください。

WBOY
WBOYオリジナル
2016-12-05 13:26:271937ブラウズ

土曜日は何もすることがなかったので、yii2をインストールしてデプロイしようとしました。インストールプロセス中に問題はありませんでしたが、nginxにデプロイしたときに502 Bad Gatewayの問題に遭遇しました。修理する。この問題は、yii2 をデプロイするときにこれまでに遭遇したことがないものなので、参考のためにここに書き留めておきます。

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 にあります。詳細については説明しません。

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

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

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

エラーログ:

アップストリーム: "fastcgi: //127.0.0.1:9090" を見ると、ポートが間違っているように見えたので、仮想ホストの構成を確認しました:

php-fpm の構成を見てみましょう:

案の定、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 モジュールの設定ディレクティブであり、nginx ドキュメントでの説明は次のとおりです。

リーリー

参考:

HTTPステータスコード

fastcgi_pass

構文:デフォルト:—コンテキスト:
<strong>fastcgi_pass</strong> <code><em>address</em>;
locationif in location
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。