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.
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.
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:
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:
Durchsuchen Sie den eigenen DNS-Cache des Browsers. Dieser Cache hat eine kurze Cache-Zeit und eine begrenzte Anzahl von Caches.
Durchsuchen Sie den DNS-Cache des Betriebssystems
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)
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.
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.
Wenn einer der oben genannten Schritte erfolgreich ist, wird eine erfolgreiche IP-Adresse zurückgegeben
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
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
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!