ホームページ >PHPフレームワーク >YII >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 ログを確認してください:
エラー ログ:
アップストリームを参照:「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 モジュールの構成ディレクティブです。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 サイトの他の関連記事を参照してください。