検索
ホームページ運用・保守NginxLinux サーバーの nginx アクセス ログにある大量の http 400 エラーを解決する方法

Linux服务器nginx访问日志里出现大量http 400错误怎么解决

サーバー内のエラー レコードは次のようになります:

124.65.133.242 – – [27/oct/2014:14:30:51 0800] “- ” 400 0 “-” “-”
124.65.133.242 – – [27/oct/2014:14:31:45 0800] “-” 400 0 “-” “-”
124.65.133.242 – – [ 27/oct/2014:14:31:45 0800] "-" 400 0 "-" "-"
124.65.133.242 – – [27/oct/2014:14:31:45 0800] "-" 400 0 "-" "-"

viewpoint

nginx のログ ファイルを分析したところ、通常のアクセス後に数個の 400 エラーが発生していることがわかりました。 1 ~ 6 回連続して発生する可能性があり、すべての顧客訪問で 400 エラーが生成されるわけではありません。

400 エラーを生成した以前のアクセスを観察するのは正常です。ステータス コード 200、通常のファイル、通常のソース、通常のユーザー エージェント... すべてが調和しているのに、なぜ 400 なのかエラーが発生しますか?どうですか?

注意深く観察した結果、400 エラーを生成した前回の訪問のユーザー エージェントはすべて Google Chrome ブラウザによって残されていることがわかりました。これは、400 エラーが Chrome ブラウザによって生成されたことを意味します。ただし、ローカル パケット キャプチャの後、Chrome が異常なリクエストやデータ パケットをサーバーに送信していないことが判明しました。

パケット キャプチャ分析では、Chrome がサーバーにアクセスするときに複数の接続 (通常は 5 ~ 6 の範囲) を開始したことが判明しました。要求されたリソースがそれほど多くの接続を必要としない場合、Chrome は未使用の接続を閉じます。使用される接続は、プリ接続と呼ばれます。

通常、Web サイトにアクセスすると、最初に HTML マスター ファイルが取得され、Web ページに必要な CSS、JS、画像などの他のメディア リソース ファイルにリンクされます。ファイルとメイン HTML ファイルはドメインの下にあります。事前接続とは、HTML ファイルの取得を待ってからサーバーに接続して他のファイルを取得するのではなく、HTML を取得する前に多数の TCP 接続を確立することを意味します。サーバーの処理には時間がかかるため、このテクノロジーにより Web ページのレンダリングを大幅に高速化できます。

Web ページの HTML リンクのリソースが比較的小さい場合、またはクライアントにキャッシュがありダウンロードに接続する必要がない場合、Web ページによって発行される 5 ~ 6 個の接続のうちの 1 つだけが存在する可能性があります。 Chrome ブラウザが必要ですが、その他のブラウザは閉じる必要があります。これにより、サーバーがリクエストを送信せずに接続されてしまうという問題が発生します。この場合、nginx は 400 エラーとして処理しますが、接続が閉じられているため、エラー メッセージはクライアントに送信されず、ログ ファイルにはエラーが記録されますが、ファイルには何も表示されません。パケットキャプチャ解析の現象です。

テスト
上記の分析結果を確認するのは非常に簡単です。コマンド ライン cmd.exe を開き、そこに telnet serverip 80 を入力し、接続が成功するまで待ちます。この時点で nginx ログ ファイルを確認すると、追加の 400 エラー レコードがあります。

コメント
事前接続の利点はすでに非常に明らかですが、欠点もあります。ウェブマスターがそれを最適化し、Cookie を使用しないテクノロジを使用している場合、または Webページ静的リソースとは異なるサーバーを使用する場合、Web ページに必要な CSS および JS リソースはメイン HTML と同じドメインになく、同じ IP 上にない可能性があります。その場合、事前接続は役に立たないだけでなく、 , しかし、メインの HTML サーバーにも不都合が生じます。必要な負担がかかります。

その他の理由

インターネット上で多くの人が関連記事を書いていますが、そのほとんどの理由は、ヘッダー サイズがサイズを超えて 400 の応答が発生するためです。しかし、実際には、ポートが生きているかどうかを確認するだけのポート テスト ツールのような別の可能性もあります。 lvs などもこの種の問題を引き起こす可能性があり、その場合、大量の 400 エラーがログに表示されます。

上記の問題については、nginx.conf の client_header_buffer_size とlarge_client_header_buffers の両方を増やすことで、この問題を軽減できます。

以上がLinux サーバーの nginx アクセス ログにある大量の http 400 エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
究極の対決:Nginx vs. Apache究極の対決:Nginx vs. ApacheApr 18, 2025 am 12:02 AM

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要な​​シナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。

Nginx in Action:例と現実世界のアプリケーションNginx in Action:例と現実世界のアプリケーションApr 17, 2025 am 12:18 AM

Nginxは、Webサイトのパフォーマンス、セキュリティ、およびスケーラビリティを改善するために使用できます。 1)逆プロキシおよびロードバランサーとして、Nginxはバックエンドサービスを最適化し、トラフィックを共有できます。 2)イベント駆動型および非同期アーキテクチャを通じて、nginxは高い並行接続を効率的に処理します。 3)構成ファイルでは、静的ファイルサービスやロードバランシングなどのルールの柔軟な定義を可能にします。 4)最適化の提案には、GZIP圧縮の有効化、キャッシュの使用、およびワーカープロセスの調整が含まれます。

Nginxユニット:さまざまなプログラミング言語をサポートしますNginxユニット:さまざまなプログラミング言語をサポートしますApr 16, 2025 am 12:15 AM

Nginxunitは複数のプログラミング言語をサポートし、モジュラー設計を通じて実装されています。 1。言語モジュールの読み込み:構成ファイルに従って対応するモジュールをロードします。 2。アプリケーションの起動:呼び出し言語が実行されたときにアプリケーションコードを実行します。 3。リクエスト処理:リクエストをアプリケーションインスタンスに転送します。 4。応答返品:処理された応答をクライアントに返します。

nginxとapacheを選択する:あなたのニーズに合った適切nginxとapacheを選択する:あなたのニーズに合った適切Apr 15, 2025 am 12:04 AM

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

nginxを開始する方法nginxを開始する方法Apr 14, 2025 pm 01:06 PM

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

Nginxが開始されるかどうかを確認する方法Nginxが開始されるかどうかを確認する方法Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

nginxを閉じる方法nginxを閉じる方法Apr 14, 2025 pm 01:00 PM

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

Windowsでnginxを構成する方法Windowsでnginxを構成する方法Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール