Nginxサービス500:内部サーバーエラーの原因の1つ

Nginxサービス500:内部サーバーエラーの原因の1つ

500 (内部サーバー エラー) サーバーでエラーが発生したため、要求を完了できませんでした。
501 (実装されていません) サーバーにはリクエストを完了する機能がありません。たとえば、サーバーがリクエスト メソッドを認識しない場合、サーバーはこのコードを返すことがあります。
502 (Bad Gateway) サーバーはゲートウェイまたはプロキシとして機能しているときに、上流サーバーから無効な応答を受信しました。
503 (サービス利用不可) サーバーは現在利用できません (過負荷またはメンテナンスのため)。通常、これは一時的な状態です。
504 (ゲートウェイ タイムアウト) ゲートウェイまたはプロキシとして機能しているサーバーが、アップストリーム サーバーからの要求を適切なタイミングで受信しませんでした。
505 (HTTP バージョンがサポートされていません) サーバーは、要求で使用された HTTP プロトコル バージョンをサポートしていません。
Nginx 500 エラー (内部サーバー エラー): 500 エラーは内部サーバー エラーを指し、サーバーが予期しない状況に遭遇し、要求を処理できなかったことを意味します。

同時接続数が多い場合、Nginx は Apache サーバーの優れた代替手段となります。 Nginx はレイヤー 7 負荷分散サーバーとしても使用できます。テスト結果によると、Nginx 0.6.31 + PHP 5.2.6 (FastCGI) は 30,000 以上の同時接続を処理でき、これは同じ環境下での Apache の 10 倍です。

しかし、Nginx を使用すると 500 エラーが発生するケースが多くあります。私の経験では、次のような状況があります。

1. ディスク容量が不足していませんか?

df -k を使用して、ハードディスクの容量がいっぱいかどうかを確認します。ハードドライブの空き容量を増やすと、500 エラーを解決できます。 nginx でアクセス ログが有効になっている場合は、アクセス ログが必要ない場合は無効にすることをお勧めします。アクセス ログは大量のハード ディスク領域を占有します。

2. nginx 設定ファイルが間違っていますか?

これは構文エラーを指すものではありません。nginx 設定ファイルに構文エラーがある場合は、起動時にプロンプ​​トが表示されます。書き換えを設定する際に、一部のルールが適切に処理されず、500 エラーが発生する可能性があります。書き換えルールを慎重に確認してください。値のない変数を参照するなど、構成ファイル内の一部の変数が正しく設定されていない場合にも、500 エラーが発生することがあります。

3. 上記の問題がいずれも発生しない場合は、シミュレートされた同時実行数が多すぎる可能性があり、nginx.confの同時実行設定数を調整する必要があります。

4. もう1つの問題は、Linuxインデックスノード(inode)がいっぱいで障害が発生することです。df -i

理由はいろいろ考えられますが、ここでは私が遭遇した理由だけを記録します。

500 内部サーバー エラーは、実際にはコード レベルで発生したエラーである可能性があります。

まず、ngnix または Apache のエラー ログを確認し、次にエラー ログを確認します。基本的にエラー ログに基づいてエラーの原因を見つけることができますが、Google や Baidu でエラー ログを検索することもできます。

次に、laravel.log などのフレームワークのエラー ログ情報を表示できます。

sudo find / -name '*.log' 
または 
cd /var/log/nginx/ && ls 

/var/log/nginx/newdns.com-error.log をcatします

要約: 今回遭遇したエラーは、MySQLテーブルに`updated_at`、`created_at`フィールドがなく、Laravelフレームワークモデルに設定されていなかったためでした。

public $timestamps = false; 、例外ハンドラ Exception を書き換える際に間違ったパスを記述したため、MySQL がエラーをスローしました。フレームワークの例外ハンドラでは処理できなかったため、サーバーに実行され、サーバーがハングしました。私はショックを受けました。

原因の1つであるNginxサービス500:内部サーバーエラーに関するこの記事はこれで終わりです。Nginxサービス500エラーの詳細については、123WORDPRESS.COMの以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMを応援してください。

以下もご興味があるかもしれません:
  • PHP+nginx サービス 500 502 エラーのトラブルシューティングのアイデアの詳細な説明

<<:  WeChatアプレットにおけるデータ保存実装方法

>>:  CentOS での MySQL ログイン 1045 問題を解決する

推薦する

ウェブテーブルフレームを作成するためのヒント

<br />Web テーブル フレームを作成するためのヒント。 ------------...

ローカル yum ソースの設定、国内 yum ソースの設定、epel ソースの設定を行う Linux の手順

1. ローカルyumソースを設定する1. ISOイメージをマウントする マウント -o loop /...

TypeScriptの基本型の詳細な説明

目次ブール型数値型文字列型文字列と数値を連結する未定義およびnull配列型タプル型列挙型あらゆるタイ...

HTML にオーディオファイルを挿入してブラウザで再生する場合の互換性の問題

HTML にオーディオ ファイルを挿入した後 (mp3 ファイルを再生した後) に発生したいくつかの...

HTML テーブル マークアップ チュートリアル (9): セル間隔属性 CELLSPACING

テーブルがコンパクトになりすぎないように、テーブル内のセル間に一定の距離を設定できます。基本的な構文...

Linux redis-Sentinel 設定の詳細

ダウンロードダウンロードアドレス: https://redis.io/download /usr/l...

SSHトンネルを使用してMySQLサーバーに接続する方法

序文場合によっては、データベースのイントラネット アドレスしか知らず、イントラネット経由で接続できな...

axios でリクエストをキャンセルし、重複リクエストを防ぐ方法について簡単に説明します。

目次序文コア - キャンセルトークン実用的なアプリケーションとパッケージングいくつかの小さな詳細序文...

ストアド プロシージャでエラー状態をトリガーする mysql ストアド プロシージャの分析例 (SIGNAL および RESIGNAL ステートメント)

この記事では、例を使用して、MySQL がストアド プロシージャで引き起こすエラー状態 (SIGNA...

openlayers6 マップオーバーレイの一般的な 3 つの用途 (ポップアップウィンドウマーカーテキスト)

目次1. 前に書く2. ポップアップウィンドウを実装するためのオーバーレイ2.1 vueページのad...

VMware WorkStation 14 pro インストール Ubuntu 17.04 チュートリアル

この記事では、VMware Workstation14 ProにUBuntu17.04をインストール...

JavaScript配列の一般的なメソッドの詳細な説明

目次元の配列を変更しない方法1. 連結文法:パラメータ:戻り値: 2. 参加する文法:パラメータ:戻...

iconfontアイコンライブラリをvueに導入するエレガントな実践記録

目次序文SVGを生成するSVGスプライトの紹介プロジェクトアイコンを取得するプロジェクトのセットアッ...

Zabbix動的実行監視収集スクリプトの実装原理

Zabbix カスタム スクリプトを使用して監視データを収集する場合、通常、次の問題が発生します。サ...