Heim  >  Artikel  >  Backend-Entwicklung  >  Betriebs- und Wartungsverfolgung von LNMP

Betriebs- und Wartungsverfolgung von LNMP

不言
不言Original
2018-07-13 15:48:272209Durchsuche

In diesem Artikel wird hauptsächlich die Betriebs- und Wartungsverfolgung von LNMP vorgestellt, die einen gewissen Referenzwert hat. Jetzt können Freunde in Not darauf zurückgreifen.

Eine Zusammenfassung der LNMP-Betriebs- und Wartungsverfolgungsfähigkeiten

Vor einiger Zeit habe ich mit dem Betrieb und der Wartung der LNMP-Website des Unternehmens begonnen. Nach einer Zeit harter Arbeit habe ich viele Methoden zum Debuggen und Verfolgen verschiedener Website-Fehler unter dem LNMP-Server zusammengefasst. Ein gutes Gedächtnis ist nicht so gut wie ein schlechtes Schreiben, also fassen wir es zusammen!

Zu Beginn werde ich klären, was ich darüber verstehe, was der Server und der Browser in jeder Phase einer Webanfrage von der Initiierung bis zur Antwort tun. In diesem Prozess treten alle Benutzerreaktionsausnahmen auf. Wenn Sie die Details jedes Prozesses kennen, können Sie verschiedene Methoden verwenden, um die Phase zu lokalisieren, in der die Ausnahme auftritt, um Fehler genauer und schneller zu lokalisieren. Was folgt, ist eine ständig aktualisierte Liste der verschiedenen Fehler, die ich erlebt habe, als ich von dieser Website gefoltert wurde. Ich werde selbstverständlich Aufzeichnungen führen, wenn es anderen helfen kann.

Was genau passiert bei einer Webanfrage?

Betriebs- und Wartungsverfolgung von LNMP

Das obige Bild ist ein einfacher Web-Anfrageprozess. Nun, die Zeichnung ist in der Tat etwas zu einfach Erklären Sie sie unten einzeln. Vielleicht möchten Sie hinzufügen, wenn es Orte gibt, die nicht abgedeckt wurden:

Schritt 1

Der Benutzer gibt eine URL wie http:www.baidu.com ein in den Browser, und der Browser wie Chrom muss es in eine IP-Adresse analysieren. Erst dann wissen Sie, wo Sie auf welchen Server zugreifen müssen. Die Schritte für den Browser zum Auflösen von DNS sind wie folgt:

  1. Durchsuchen Sie den eigenen DNS-Cache des Browsers. Dieser Cache hat eine kurze Cache-Zeit und eine begrenzte Anzahl von Caches.

  2. Durchsuchen Sie den DNS-Cache des Betriebssystems

  3. Lesen Sie die DNS-Zuordnung der Hostdatei (normalerweise für die lokale Entwicklungszuordnung ist diese Datei geändert, um dies zu erreichen) Der Zweck besteht darin, Browseranforderungen an den lokalen Server abzufangen, damit die lokale Serveradresse erfolgreich zugeordnet werden kann)

  4. Zuerst der DNS-Server in der lokalen Netzwerkkartenkonfiguration Initiiert eine Anfrage zur Domänennamenauflösung. Hier scheint es eine Reihe von Vorgängen zu geben. Der Geschäftsprozess wird nicht mehr ausgeführt.

  5. Es scheint einige Prozesse zu geben, da dieser Schritt grundsätzlich nicht ausgeführt wird, normalerweise wird er vom DNS-Server des DNS-Betreibers übernommen.

  6. Wenn einer der oben genannten Schritte erfolgreich ist, wird eine erfolgreiche IP-Adresse zurückgegeben

Der zweite Schritt

Der Browser startet mit „Ein zufälliger Port teilt den spezifischen Port dieser IP-Adresse (Standard 80), um den berühmten TCP-3-Wege-Handshake zu initiieren.“ Der Prozess, wie eine http-Anfrage den Nginx-Dienst erreicht, ist ungefähr wie folgt:

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

Der dritte Schritt

Nachdem der Handshake abgeschlossen ist, können Browser und Server problemlos http-Anfragen senden, insbesondere in nginx Der Prozess ist wie folgt:

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

Schritt 4

Der Browser rendert eine visuelle Seite basierend auf dem Antwortheader und dem Antworttext der Serverantwort

响应码 说明
1xx 信息性状态说明
2xx 成功状态码
3xx 重定向状态码
301 永久重定向, Location响应首部的值仍为当前URL,因此为隐藏重定向
302 临时重定向,显式重定向, Location响应首部的值为新的URL
304 Not Modified  未修改,比如本地缓存的资源文件和服务器上比较时,发现并没有修改,服务器返回一个304状态码,告诉浏览器,你不用请求该资源,直接使用本地的资源即可
4xx 客户端错误
404 Not Found  请求的URL资源并不存在
5xx 服务器错误
500 Internal Server Error  服务器内部错误
502 Bad Gateway  前面代理服务器联系不到后端的服务器时出现
504 Gateway Timeout  这个是代理能联系到后端的服务器,但是后端的服务器在规定的时间内没有给代理服务器响应

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Einführung in die PHPStorm-Codeformatierungseinstellungen

So verwenden Sie di im yii2-Framework. Verständnis die Rolle der Reflexion im Container-Quellcode

Das obige ist der detaillierte Inhalt vonBetriebs- und Wartungsverfolgung von LNMP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn