Nginx 502 Bad Gateway エラーに何度か遭遇しました。ここでメモしておこうと思います。 502 エラーが発生する状況は多数あります。それぞれの状況について個別に説明しましょう。 1. fastcgiバッファが小さすぎる エラーが発生した場合は、まず /var/log/nginx ディレクトリ内の nginx ログ ファイルを探します。ログには次のエラーが見つかります。 2013/01/17 13:33:47 [エラー] 15421#0: *16 アップストリームからの応答ヘッダーの読み取り中にアップストリームが大きすぎるヘッダーを送信しました 情報を調べたところ、nginx バッファにバグがあり、当社の Web サイトのページがバッファを過剰に消費する可能性があることがわかりました。 ネットで解決策を探したところ、海外のウェブサイトでバッファを増やす方法を見つけ、Nginx 502 Bad Gateway の問題が完全に解決しました。方法は次のとおりです。 http { ... fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; ... } サーバーやウェブサイトの状況に応じて、上記2つの設定項目を増やしてください。 2. プロキシバッファの設定が小さすぎる nginx リバース プロキシを使用している場合、ヘッダーが大きすぎてデフォルトの 1k を超えると、上記のアップストリームから送信されたヘッダーが大きすぎるというエラーが発生します (簡単に言うと、nginx は外部リクエストをバックエンドに送信して処理しますが、バックエンドから返されるヘッダーが大きすぎて nginx が処理できず、502 が発生します)。 サーバー{ 聞く 80; サーバー名 *.lxy.me; 位置 / { ################# 次の 3 行を追加します proxy_buffer_size 64k; プロキシバッファ 32 32k; proxy_busy_buffers_size 128k; ################ 次の 3 行を追加します proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ............ } 3. php-cgiプロセスのデフォルト数が少なすぎる インストールおよび使用中に 502 エラーが発生した場合、通常は php-cgi プロセスのデフォルト数が 5 であることが原因です。502 は、phpcgi プロセスが不足していることが原因である可能性があります。/usr/local/php/etc/php-fpm.conf を変更し、max_children 値を適切に増やす必要があります。 max_requests 値が十分でない可能性もあります。これら 2 つの設定項目は大量のメモリを消費するので、サーバーの構成に応じて設定してください。そうしないと逆の効果が出る可能性があります。 4. PHP実行タイムアウト PHP 実行タイムアウト。/usr/local/php/etc/php.ini を変更し、max_execution_time を 300 に変更します。 5. nginx 待機時間タイムアウト 一部の PHP プログラムの実行時間は、Nginx の待機時間を超えます。nginx.conf 構成ファイルで FastCGI のタイムアウト時間を適切に増やすことができます。 http { fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; ..... } 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL 8.0.22 winx64 のインストールと設定方法のグラフィックチュートリアル
>>: JavaScript シングルスレッドと非同期の詳細
目次どうしたの?いつ使うか列挙の数を制御するビット値コントロールインデックス非数値列挙結論はType...
画像プレビュー機能付きのアップロードフォーム、完全なHTMLコードは次のとおりです。 <htm...
書き順の重要性ブラウザのリフローを減らし、ブラウザのDOMレンダリングパフォーマンスを向上させる①:...
シナリオ昨日、システムは dbAll.sql.gz という名前の特定のデータベースのすべてのテーブル...
1. ソフトウェアのインストールパスを確認します。 Linuxソフトウェアをインストールできる場所は...
フロントエンド プロジェクトとバックエンド プロジェクトは分離されており、フロントエンドとバックエン...
一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...
これまでの仕事では、開発サーバーは一般的にTomcatでした。データソースは、多くの場合、appli...
AI 画像の切り取りは PS と連携する必要があります。まず、スライスするレイヤーを選択し、それを...
CSS3アニメーションとJSアニメーションの違いJSはフレームアニメーションを実装しますCSS3はト...
アバターをアップロードするにはVue-Cropperコンポーネントを使用します。参考までに具体的な内...
1. インストールyumを使用してインストールする ##yum nginx を自動的にインストールす...
この記事で説明する等幅レイアウトでは、純粋な CSS を使用して、要素の幅を手動で設定することなく、...
Docker コンテナに繰り返し入って操作することを避けるために、コンテナ内の一連の命令をホストマシ...
Web フロントエンド開発のプロセスでは、UI デザイナーはグラデーション テキストを使用したデザイ...