この記事では、一定の基準値を持つ LNMP の運用保守追跡を中心に紹介します。今回はそれを皆さんに共有します。必要な友人は参考にしてください。
少し前に、会社の LNMP Web サイトの運用と保守を始めましたが、苦労の末、LNMP サーバーで Web サイトのさまざまなエラーをデバッグおよび追跡するための多くの方法をまとめました。良い記憶力は悪い文章ほど良くないので、まとめてみましょう。
最初に、Web リクエストの開始から応答までの各段階でサーバーとブラウザが何を行うかについて、私が理解していることを整理します。ユーザー応答の例外はすべてこのプロセスで発生します。各プロセスの詳細を知ることで、さまざまな方法を使用して例外が発生する段階を特定できるため、エラーをより正確かつ迅速に特定できます。以下は、この Web サイトで拷問を受けている間に私が経験したさまざまなエラーの継続的に更新されたリストです。自分用に記録を残しておきます。もちろん、他の人の助けになれば光栄です。
上の図は、単純な Web リクエスト プロセスです。確かに、この図は少し単純すぎます。上の図では多くの詳細を隠しています。
ユーザーは、http:www などの URL を入力します。 baidu.com をブラウザに入力すると、Chrome などのブラウザはそれを IP アドレスに解析する必要があり、それによって初めて、どこのサーバーにアクセスすればよいかがわかります。ブラウザが DNS を解決する手順は次のとおりです:
ブラウザ自身の DNS キャッシュを検索します。このキャッシュはキャッシュ時間が短く、キャッシュの数が限られています。
オペレーティング システムの DNS キャッシュを検索します。
ホスト ファイルの DNS マッピングを読み取ります (通常、ローカル開発マッピングの場合、このファイルはローカル サーバーへのブラウザ要求をインターセプトするという目的を達成するために変更され、ローカル サーバー アドレスが正常にマッピングされるようになります)
まず、ローカル ネットワーク カード構成内の DNS サーバーがドメイン名解決リクエスト。ここに一連の操作があるようです。ビジネス プロセスは実行されなくなります。
以下のような処理があるようですが、ここまでは基本的に実行されないので、通常はDNS事業者のDNSサーバーが処理します。
解析に失敗しました。上記の手順のいずれかが成功すると、成功した IP アドレスが返されます。
ブラウザは、有名な TCP 3 ウェイ ハンドシェイクを開始するために、この IP アドレスの特定のポート (デフォルトは 80) をランダムなポートで共有します。 http リクエストが nginx サービスに到達するプロセスは、大まかに次のとおりです。
st=>start: TCP请求 en=>end: 异常 op=>operation: Nginx模块 cond1=>condition: 进入网卡? cond2=>condition: 内核的TCP/IP协议栈? cond3=>condition: 防火墙? st->cond1 cond1(yes)->cond2 cond1(no)->en cond2(yes)->cond3 cond2(no)->en cond3(no)->en cond3(yes)->op
ハンドシェイクが完了すると、ブラウザとサーバーは http リクエストを、具体的には次のように送信できるようになります。 nginx プロセスは次のとおりです。
st=>start: http请求 en=>end: response响应 op1=>operation: 第二步流程 op2=>operation: nginx进程 op3=>operation: 获取http的头部信息 op4=>operation: 匹配server_name,定位到站点的root op5=>operation: 进入代码框架的路由 op6=>operation: 框架的路由解析器解析出php文件 op7=>operation: php进入fastcgi进程 op8=>operation: fastcgi进程将php填充成html文件 op9=>operation: html文件递交给nginx并设置响应信息 st->op1->op2->op3->op4->op5->op6->op7->op8->op9->en
ブラウザは、サーバー応答の応答ヘッダーと応答本文に基づいてビジュアル ページをレンダリングします。
応答コード | #説明 |
---|---|
情報ステータスの説明 | |
成功ステータス コード | |
リダイレクト ステータス コード | |
永続的なリダイレクト。Location 応答ヘッダーの値は現在の URL のままであるため、これは非表示のリダイレクトです。 | |
一時的なリダイレクト、明示的なリダイレクト、 Location 応答ヘッダーの値は、新しい URL | ##304 |
4xx | |
404 | |
5xx | |
500 | |
#502 | |
504 | |
以上がLNMP の運用および保守の追跡の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。