JAVA 開発 (504 ゲートウェイ タイムアウト エラーのトラブルシューティング プロセスを思い出してください)

1. 問題と背景:

最近、Webプロジェクトを公開しており、テスト環境で利用可能であり、IPアクセスで本番環境に公開することも可能ですが、ドメイン名でアクセスすると504ゲートウェイタイムアウトが発生します。postman を介したインターフェイスのテストにも同じことが当てはまります。IP とポートの両方は通信できますが、ドメイン名は通信できません。これは不可解です。Baidu 検索により、これらの場所は nginx 設定ファイルを通じて設定されていることが分析されました

  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 256k;
  fastcgi_buffers 2 256k;
  fastcgi_busy_buffers_size 256k;
  fastcgi_temp_file_write_size 256k;

結果は影響しませんが、一部のシナリオでは可能になるはずです。たとえば、IP 経由でアクセスすると 504 エラーが報告されますが、これは私のシナリオではありません。

次に、サーバーで設定することで指示を継続します。

  proxy_connect_timeout    6000;  #nginx跟后端服务器连接超时时间(代理连接超时)默认60s
  proxy_read_timeout       6000; #后端服务器数据回传时间(代理发送超时)默认值60s
  proxy_send_timeout       6000;  #连接成功后,后端服务器响应时间(代理接收超时)默认值60s

 それもうまくいきませんでした。

たとえば、IP 経由でアクセスすると 504 エラーが報告されますが、これは私のシナリオではありません。

上記の 2 つのスキームは、現在インターネット上で利用可能な 2 つのスキームである必要があります。しかし、それは私の問題を解決しませんでした。

次に、504 エラーのシナリオを一から理解する必要があります。Web サーバーが応答しないことだけが原因ではない可能性があります。

次に、504 エラーの定義と分析:

504 エラーはゲートウェイ タイムアウトを表します。これは、サーバーがゲートウェイまたはプロキシとして機能するが、上流サーバーからの要求を時間内に受信しないことを意味します。

サーバー (必ずしも Web サーバーである必要はありません) は、目的の URL にアクセスするためのクライアント (ブラウザーや CheckUpDown ロボットなど)からのリクエストを満たすゲートウェイまたはプロキシとして機能します。HTTP リクエストを満たすために、サーバーは上流のサーバーに接続しましたが、タイムリーな応答を取得できませんでした。

これは通常、上流サーバーがダウンしている (ゲートウェイ /プロキシに応答していない) ことを意味し、上流サーバーとゲートウェイ/プロキシがデータ交換用のプロトコルに同意していないことを意味するわけではありません。

通常の状況では、要求されたサーバーから送信されたタイムアウトが原因で発生します。

3. 504 エラーの原理:

プロキシまたはゲートウェイとして機能するサーバーによって使用され、リモート サーバーからの応答を適時に取得できなかったことを示します   。

クライアントがWeb サーバーと通信するときは、次のサイクルを通過する必要があります。

サイトの IP 名から IPアドレスを取得します (つまり、サイトの Web アドレス、最初の「http://」を除いた URL)  。この対応 (つまり、IP 名から IP アドレスへの変換) は、ドメイン ネーム サーバー (DNS) によって提供されます。

この IP アドレスに接続するには、IP ソケット (ソケット) を開きます。

このソケットを通じて HTTP データ ストリームを書き込みます。

Web サーバーから応答を受信する HTTP データ ストリーム。このデータ ストリームには、HTTP プロトコルに応じて値が異なるステータス コードが含まれています。データ ストリームを解析すると、ステータス コードやその他の有用な情報が得られます。

このエラーは、上記の最後の手順で、クライアントが HTTP ステータス コードを受信し、それを「504」として認識したときに生成されます。

この問題は純粋に、バックエンド コンピュータ (おそらく Web サーバーを含む) 間の IP 通信が遅いことが原因で発生します。Web サーバーが Web サイトによってホストされている場合、その Web サイトの設定の責任者のみがこの問題を解決できます。

Web 上でのプロキシとキャッシュの使用は日に日に増加しています。CheckUpDown ロボットは常に Web サイトを実際にホストしているコンピューターに「ドリルイン」しようとしますが、HTTP リクエストが実際にどこに到達するかを完全に制御することはできません。HTTP リクエストを処理するコンピューターのチェーン内の 1 つのリンクが壊れている限り、504 のようなエラーが簡単に発生する可能性があります。

4. IP がドメイン名にアクセスし、504 エラーを報告する可能性があります。最終的な解決策は次のとおりです。

その場合、ドメイン名解決環境がファイアウォール リンクに追加され、エラーが 504 になる可能性もあります。その結果、調査の結果、ドメイン名解決対応ポート設定エラーが504の原因であることが判明しました。その後ポリシーを修正し、最終的に問題は解決しました。

5. 504 エラーは、次のシナリオでも発生する可能性があります。

1. コンピューターのブラウザーのエラー: このエラーは、ブラウザーの構成または設定に何らかのエラーがある場合に発生します。

2. DNS エラー: ドメイン DNS の設定が不適切であると、ドメインを参照するときにエラーが発生する可能性があります。

3. ネットワークが不安定: プロキシと Web サーバー間のデータ接続が不十分な場合、応答が遅延する可能性があります。

4. Web サーバーの速度が遅い: Web サーバーの機能が低いと、ゲートウェイ IP リクエストのタイムアウトが発生する可能性があります

5. 504 エラーの主な理由は、ファイアウォール設定エラーです。ファイアウォール ルールが正しくありません。

504 ゲートウェイのタイムアウトを解決する方法

1. ページを更新します

504 ゲートウェイ タイムアウト エラーに対処する最初の手順は、更新/再読み込みボタンを押すか、F5 キーを押すか、検索ボックスから URL を再度検索してから、Web ページを試してみることです。サーバーかもしれない

そのとき、通常よりも多くのリクエストを受け取り、多くのリクエストを解決できず、その結果、短い 504 ゲートウェイ タイムアウトが発生しました。

2.各種デバイスを再起動する

モデム、ワイヤレス ルーター、ネットワーク スイッチ、またはその他のネットワーク ハードウェアに一時的な問題が発生すると、504 ゲートウェイ タイムアウトが発生する可能性があります。このデバイスを再起動してみると、すべての人が役立つ可能性があります。

3. プロキシサーバーの設定を確認する

ブラウザまたはプログラムを使用してプロキシ サーバーの設定をチェックし、設定が正確であることを確認します。ネットワーク設定が正しくないと、504 ゲートウェイ タイムアウト エラーが発生する可能性があります。

4.DNSサーバーを変更する

特にインターネット上のさまざまなデバイスで同じエラーが発生した場合は、DNS サーバーを変更します。表示されている 504 ゲートウェイ タイムアウト エラーは、使用している DNS サーバーの問題が原因である可能性が高くなります。

5. 間違ったファイアウォール構成を修正する

ファイアウォールはページの守護者です。意図的な訪問者から Web サイトを保護します。ただし、サーバーのネットワーク ファイアウォールで何らかのバグ、不正なデバイス、または適切な基準によって接続がブロックされ、504 ゲートウェイ タイムアウト エラーが発生する可能性があります。

6. サーバー サービス プロバイダーに問い合わせます

場合によっては、サーバー サービス プロバイダーに問い合わせてみてください。この問題はより効率的に見つけることができます。

7. 後でこのサイトを閲覧してみてください

他に何も成功しない場合の最後の手段は、サイトを少し閲覧してみることです。

おすすめ

転載: blog.csdn.net/dongjing991/article/details/131421783