ホームページ >バックエンド開発 >PHPチュートリアル >nginx 504 ゲートウェイ タイムアウト、nginxtime-out_PHP チュートリアルを覚えておいてください

nginx 504 ゲートウェイ タイムアウト、nginxtime-out_PHP チュートリアルを覚えておいてください

WBOY
WBOYオリジナル
2016-07-12 08:55:411226ブラウズ

nginx 504 ゲートウェイ タイムアウト、nginxtime-out を覚えておいてください

今日、プログラムが Excel エクスポート タスクを実行しているときに、nginx タイムアウト プロンプトが表示されました

nginx 504 ゲートウェイのタイムアウト

トラブルシューティングのプロセス:

タスクを表示すると、内容が 20,000 件の情報のデータ量であることがわかります。この問題は、Excel にエクスポートするときに発生しました。

タイムアウトが発生するまでの実行時間は約10分です

分析:

Nginx 504 Gateway Timeout は、要求されたゲートウェイが要求されていないことを意味します。簡単に言えば、実行可能な PHP-CGI が要求されていないことを意味します。 通常、次の状況でこの問題が発生します:

1. プログラムが大量のデータを処理している、または無限ループなどの問題がある
2. データベースなどの接続を作成するときに、何らかの理由で接続できず、タイムアウト障害のメカニズムがないため、常に接続が作成されます
3. プログラム内にいくつかの http リクエストがあり、これらのリクエストの実行時間が長すぎてタイムアウトになります

タイムアウトの特定のパラメーターを表示するには、nginx と php の関連する設定をそれぞれ確認してください

nginx設定ファイルを見つける

リーリー

ここで最も重要な設定は最初の 3 つです。

リーリー

php設定ファイル

リーリー

上記の設定を変更した後、再度実行したところ、504 タイムアウト プロンプトは表示されませんでしたが、ページは空白で、ファイルはエクスポートされませんでした。実行中にphpがタイムアウトするはずです

まさか、PHP コードをチェックしたところ、実行時間の設定が見つかりませんでした:

set_time_limit

Baidu は php 関数の実行時間を検索し、次のことを発見しました:

制限時間の設定

この関数は、ページの最長実行時間を設定するために使用されます。デフォルト値は 30 秒で、php.ini の max_execution_time 変数で設定されています。0 に設定されている場合、最大時間は制限されません。

この関数を実行すると計算が開始されます。たとえば、デフォルトが 30 秒で、この関数が実行される前に 25 秒が実行されており、この関数を使用してそれを 20 秒に変更すると、ページの最大実行時間は 45 秒になります。

最後にphp関数に次の行を追加しました:

set_time_limit(0);

再度実行すると結果はOKです。

http://www.bkjia.com/PHPjc/1116072.html

本当http://www.bkjia.com/PHPjc/1116072.html技術記事 nginx 504 ゲートウェイ タイムアウト、nginxtime-out を思い出してください。今日、プログラムが Excel エクスポート タスクを実行しているときに、nginx 504 ゲートウェイ タイムアウトのプロンプトが表示されます。確認してください...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。