GNU/Linux >> Linux の 問題 >  >> Linux

502 Bad Gateway ErrorNGINX[解決策]

クライアントのWhatsAppsが、502不良ゲートウェイNGINXと書かれたウェブサイトのスクリーンショットを表示したときの感想 エラー? (一日を始めるために)これより悪いことはありませんね?そのような一日を始めてはいけないことを願っていますが、そのような状況に陥った場合の回復方法を説明します。

問題とその解決策について説明する前に、私のホスティング環境はFPMPHPハンドラーを備えたNGINXウェブサーバーを利用していることを思い出してください。

502 BadGatewayNGINXエラーの理由

NGINXエラーログ(/var/log/nginx/nginx.log)からエラーのデバッグを開始しました 以下のエラーメッセージが見つかりました。

2019/12/11 04:30:43 [error] 27570#27570: *48599 connect() to unix:/var/run/php-fpm/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 17.58.98.98, server: techglimpse.com, request: "GET /pure-css3-shapes/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "techglimpse.com"

エラーメッセージがPHPハンドラーに関連していて、/var/log/php-fpm/error.logにあるPHP-FPMエラーログを調べるようにリダイレクトされたことは明らかです。 以下のエラーメッセージに気づきました:

[08-Dec-2019 03:30:01] NOTICE: error log file re-opened
[10-Dec-2019 21:00:16] WARNING: [pool www] server reached pm.max_children setting (50), consider raising it

これで、pm.max_childrenが原因で、PHP-FPMマスタープロセスが新しい子プロセスを生成できないことが明らかになりました。 制限に達したため、502の不正なゲートウェイエラーが発生しました。

エラーを修正する方法:サーバーがpm.max_children設定に達しました、それを上げることを検討してください

解決策は、pm.max_childrenを増やすことです。 サーバーの仕様に基づく制限。ウェブサイトが大量のトラフィックを受信した場合、ワーカーが再利用されることはなく、RAMの使用量は時間の経過とともに無期限に増加し、サーバーのメモリ不足状態になるため、制限をやみくもに増やしないでください。

したがって、pm.max_children スワップの使用状況を監視しながら、慎重かつ段階的に増やす必要があります。

pm.max_children = ((total RAM in MB) - (RAM usage by MySQL and others taken together in MB)) / 80
ノート

ここで、80MBはPHP-FPMワーカープロセスの平均重量です。

上記の計算に基づいて、PHP-FPMのそれぞれのドメイン構成ファイルのpm.max_children値を増やします。私の場合:/etc/php-fpm.d/techglimpse.conf

pm = ondemand
pm.max_children = 200

次に、PHP-FPMおよびNGINXサービスを再起動します

systemctl restart php-fpm nginx
ノート

pm.max_childrenの影響を受けたすべてのドメインをフィルタリングします 上記の設定を影響を受けるものだけに適用します。

アプリケーションが使用するメモリを見つける方法

以下のコマンドを実行して、それぞれのアプリケーションで使用されているメモリを見つけます。

#ps -o pid,user,%mem,command ax | sort -b -k3 -r

PID USER %MEM COMMAND
1355 mysql 14.5 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
543 root 0.3 /usr/lib/systemd/systemd-journald
9254 nginx 0.3 php-fpm: pool www
9251 nginx 0.3 php-fpm: pool www

上記の例では、MySQLは合計メモリの約14%を使用しています。


Linux
  1. エラー:PyYAML-3.11.zipのダウンロードの問題でmd5の検証に失敗しましたか? [解決]

  2. Module / Load/Conditional.pmが見つかりません[解決策]

  3. Test / Harness.pm perlエラーが見つかりません:[解決策]

  1. アップストリームから応答ヘッダーを読み取っているときにアップストリームが大きすぎるヘッダーを送信しました–NGINXエラー

  2. OpenCAエラー–対称鍵長が短すぎます[解決策]

  3. 「レポの ID が正しくありません:マイレポ、バイト =2」yum 更新エラー

  1. conda コマンドでエラーが表示されます:Bad Interpreter:No such file or directory

  2. シングルビットメモリエラーは Linux にどのように影響しますか?

  3. エラー:/etc/host.conf ファイルの不正なコマンド ` nospoof on'