Heim PHP-Framework Laravel Konfigurationsfehler der Hosts-Datei verursacht Anwendungsverzögerung (Laravel-Sail-Entwicklungsumgebung)

Konfigurationsfehler der Hosts-Datei verursacht Anwendungsverzögerung (Laravel-Sail-Entwicklungsumgebung)

Jun 18, 2021 pm 03:47 PM
laravel

vorgestellt, um den durch das Problem der Cardon (Laravel-Sail-Entwicklungsumgebung) verursachten Konfigurationsfehler der hsts-Datei vorzustellen. Ich hoffe, dass es für die Freunde in Not hilfreich sein wird! Heute habe ich den Quellcode eines Projekts heruntergezogen und die neue Laravel-Sail-Entwicklungsumgebung verwendet. Die bisherige Homestead-Entwicklungsumgebung ist jetzt nur noch ein Backup. Zuerst verlief alles reibungslos, einschließlich der Abhängigkeitsinstallation, des Containerstarts und der Datenmigration. Dann habe ich den Entwicklungsdomänennamen glücklich in der Hosts-Datei konfiguriert:

Öffnen Sie den Browser und besuchen Sie: http://devocus .test: 8016, ich dachte, dass alles gut lief, aber ich stellte fest, dass die Seite immer geladen wurde und es fast 30 Sekunden dauerte, bis die vollständige Schnittstelle geladen war. Ich war auch verwirrt Die verwendete Entwicklungsumgebung Laravel-Sail startet fast immer in Sekundenschnelle. Ist dieses Projekt angeschwollen?

Dann habe ich die Browser-Entwicklertools geöffnet und festgestellt, dass alle Anfragen mehr als 30 Sekunden dauerten. Könnte es sein, dass ich auf ein Datei-E/A-Problem gestoßen bin? Aber mein Projekt ist im Ubuntu-Subsystem platziert. Netzwerkproblem? Die anderen Punkte sind völlig normal. Ich habe jede mögliche Lösung ausprobiert, Dateiberechtigungen geändert, Ladder geschlossen, den Container gelöscht und neu erstellt usw., aber ohne Erfolg.

Also habe ich Telescope installiert und die Details jeder Anfrage überprüft. Auch das Öffnen von Telescope dauerte etwa eine Minute, bis die Telescope-Schnittstelle endlich geladen wurde. Aber die Abfrageergebnisse haben mich sehr überrascht: http://devocus.test:8016,本以为一切顺利,但是却发现页面一直处于加载状态,隔了差不多 30 秒才将完整的界面加载出来,我百思不得其解,其他几个项目我都是用的 Laravel-Sail 开发环境,几乎都是秒开,这个项目是肿么了?

然后我打开浏览器开发者工具,发现所有的请求都需要 30 秒以上,难道遇到了文件 IO 问题?但是我项目是放在 Ubuntu 子系统中的呀。网络问题?那其他几个项目又完全正常呀。我尝试着各种可能的解决办法,改文件权限、关闭ladder、删除并重新创建容器等等,一顿折腾下来,毫无结果。

于是安装了 Telescope,查看每个请求的详细情况,打开 Telescope 速度也非常慢,我等待了大概一分钟,Telescope 的界面终于加载出来了。但是查询结果令我非常意外:

记一次 hosts 文件配置错误导致的应用卡顿问题

Telescope 显示,每个请求的处理速度都很快,数据查询也很快,我佛了…

于是找同事的电脑试一下,开发环境都是 Laravel-Sail 没想到他的电脑上访问也同样十分缓慢,这直接将我们的思维引导到 “项目代码有问题” 这个方向上,于是我花了一上午时间仔细对比检查各种配置文件、env文件,升级了 laravel 以及各种依赖的版本。但是当我每次满怀期待的在浏览器打开应用时,还是卡的让我怀疑人生,而且日志记录一切正常。然后使用搜索引擎尝试搜索这个问题的解决方案,中文搜索、英文搜索都没有结果。一个上午过去了,还是没有搞定这个问题,甚至一股绝望感涌上心头。

最后还是决定去吃午饭,先让自己放松下来。吃完饭回来的路上,我又一次思考这个问题,脑袋里各种搜索出来的答案一条一条闪过,突然一个单词从我眼前“飞过”:hosts
回到工位上我打开电脑,想着先用 ip 直接访问应用看看情况,于是在浏览器输入http://127.0.0.1:8016,界面被急速打开,我大概有点眉目了,于是打开 hosts 文件,想着换个域名试试:

# 127.0.0.1 devocus.test
127.0.0.1 ifocus-dev.test
Nach dem Login kopieren

然后打开浏览器,输入http://ifocus-dev.test:8016,应用被快速打开,非常流畅,问题就这样莫名其妙的解决了。
但是问题出在哪里呢?我再次打开 hosts 文件,仔细检查,发现之前做过的同一个域名的解析静静地躺在 hosts 文件里面,我将开发环境由 Homestead 迁移到 Laravel-Sail时,忘记修改 hosts 文件了:

...
192.168.10.10 devocus.test
...
# 127.0.0.1 devocus.test
127.0.0.1 ifocus-dev.test
Nach dem Login kopieren

在 hosts 文件中,同一个域名解析到两个 ip 会发生什么情况呢?我去搜索引擎上搜索了一下,找到了答案:

电脑在hosts文件中是由上往下查找 IP,相同的域名取第一个 IP,如果第一个IP受阻,那么会转向第二个IP,乃至第N个,但是这种方式达不到负载均衡的效果,但可以增大打开网站的几率。

由于我将 devocus.test解析到了两个IP地址:192.168.10.10 及127.0.0.1,当我在浏览器中打开http://devocus.test

Merken Sie sich eine Hosts-Dateikonfiguration Fehler Die durch „/>🎜🎜Telescope verursachte Anwendungsverzögerung zeigte, dass die Verarbeitungsgeschwindigkeit jeder Anfrage sehr schnell war und die Datenabfrage auch sehr schnell war. Ich war erstaunt ... 🎜🎜Also habe ich es auf dem Computer eines Kollegen ausprobiert. Die Entwicklungsumgebung war Laravel. Sail hatte nicht damit gerechnet, dass der Zugriff auf seinem Computer ebenfalls sehr langsam war, was uns direkt in die Richtung „Es gibt ein Problem mit dem Projektcode“ führte, also verbrachte ich den ganzen Morgen damit, sorgfältig zu vergleichen und Überprüfen verschiedener Konfigurationsdateien, Env-Dateien und Aktualisieren von Laravel und verschiedenen abhängigen Versionen. Aber jedes Mal, wenn ich mit großen Erwartungen die Anwendung im Browser öffne, friert sie immer noch ein und lässt mich an meinem Leben zweifeln, und die Protokollaufzeichnungen sind alle normal. Versuchen Sie dann, nach einer Lösung für dieses Problem zu suchen. Bei der Suche auf Chinesisch oder Englisch werden keine Ergebnisse angezeigt. Ein Morgen verging, und ich hatte dieses Problem immer noch nicht gelöst, und sogar ein Gefühl der Verzweiflung überkam mich. 🎜🎜Schließlich beschloss ich, zum Mittagessen zu gehen, um mich zunächst zu entspannen. Auf dem Rückweg vom Abendessen dachte ich noch einmal über diese Frage nach. Verschiedene Antworten, die ich in meinem Kopf suchte, blitzten nacheinander auf, und plötzlich „flog“ ein Wort vor meinen Augen: <code>Gastgeber</code>. <br/>Als ich an meinen Arbeitsplatz zurückkehrte, schaltete ich den Computer ein und dachte darüber nach, über IP direkt auf die Anwendung zuzugreifen, um die Situation zu sehen, also gab ich <code>http://127.0.0.1:8016</code> ein Der Browser öffnete sich und die Oberfläche wurde schnell angezeigt. Ich war wahrscheinlich etwas verwirrt, also öffnete ich die Hosts-Datei und überlegte, einen anderen Domainnamen auszuprobieren: 🎜rrreee🎜 Dann öffnete ich den Browser und gab <code>http:/ ein. /ifocus-dev.test:8016</code>, und die Anwendung wurde schnell und reibungslos geöffnet und das Problem wurde auf unerklärliche Weise gelöst. <br/>Aber was ist das Problem? Ich öffnete die Hosts-Datei erneut, überprüfte sie sorgfältig und stellte fest, dass die Auflösung desselben Domänennamens, die ich zuvor vorgenommen hatte, stillschweigend in der Hosts-Datei lag. Als ich die Entwicklungsumgebung von Homestead nach Laravel-Sail migrierte, vergaß ich, sie zu ändern hosts-Datei: 🎜rrreee🎜 Was passiert in der hosts-Datei, wenn derselbe Domänenname in zwei IPs aufgelöst wird? Ich habe in der Suchmaschine gesucht und die Antwort gefunden: 🎜<blockquote>🎜Der Computer sucht von oben nach unten in der Hosts-Datei. Nehmen Sie für denselben Domainnamen die erste IP Es wird auf die zweite IP oder sogar die N-te IP umgeschaltet. Diese Methode kann jedoch keinen Lastausgleichseffekt erzielen, kann aber die Wahrscheinlichkeit erhöhen, dass die Website geöffnet wird. 🎜</blockquote>🎜Da ich <code>devocus.test</code> auf zwei IP-Adressen geparst habe: 192.168.10.10 und 127.0.0.1, wenn ich beim Testen <code>http://devocus</code> öffne Ich habe zuerst auf 192.168.10.10 zugegriffen, aber da mein Homestead geschlossen war, muss dieser Vorgang etwa 30 Sekunden gedauert haben, und dann hat das System weiter nach anderen IPs in der Hosts-Datei gesucht, diese gefunden und darauf zugegriffen Die Webseite wurde nur unter 127.0.0.1 geöffnet. Da jede Anfrage diesen Prozess durchlaufen muss, habe ich das Gefühl, dass das System sehr feststeckt. Zu diesem Zeitpunkt ist das Problem, das mich beunruhigte, gelöst. 🎜<p>Bei der Entwicklung von Projekten muss jeder diesen subtilen Problemen mehr Aufmerksamkeit schenken. Kleine Probleme können oft große Probleme verursachen. Selbst ein selbstgerechter Veteran wie ich fällt in eine tiefe Grube. Die Softwareindustrie ist eigentlich eine praktische Branche, in der man ständig auf Gruben treten, Gruben graben und Gruben füllen muss. </p><p>Aber nachdem ich darüber nachgedacht habe, wäre ich möglicherweise noch beunruhigter, wenn ich zu diesem Zeitpunkt die Homestead-Umgebung geöffnet hätte. <span class=                                                                                                                                         

Das obige ist der detaillierte Inhalt vonKonfigurationsfehler der Hosts-Datei verursacht Anwendungsverzögerung (Laravel-Sail-Entwicklungsumgebung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vergleich der neuesten Versionen von Laravel und CodeIgniter Vergleich der neuesten Versionen von Laravel und CodeIgniter Jun 05, 2024 pm 05:29 PM

Die neuesten Versionen von Laravel 9 und CodeIgniter 4 bieten aktualisierte Funktionen und Verbesserungen. Laravel9 übernimmt die MVC-Architektur und bietet Funktionen wie Datenbankmigration, Authentifizierung und Template-Engine. CodeIgniter4 nutzt die HMVC-Architektur, um Routing, ORM und Caching bereitzustellen. In Bezug auf die Leistung sorgen das auf Dienstanbietern basierende Designmuster von Laravel9 und das leichte Framework von CodeIgniter4 für eine hervorragende Leistung. In praktischen Anwendungen eignet sich Laravel9 für komplexe Projekte, die Flexibilität und leistungsstarke Funktionen erfordern, während CodeIgniter4 für schnelle Entwicklung und kleine Anwendungen geeignet ist.

Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter? Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter? Jun 01, 2024 pm 01:34 PM

Vergleichen Sie die Datenverarbeitungsfunktionen von Laravel und CodeIgniter: ORM: Laravel verwendet EloquentORM, das eine relationale Klassen-Objekt-Zuordnung bereitstellt, während CodeIgniter ActiveRecord verwendet, um das Datenbankmodell als Unterklasse von PHP-Klassen darzustellen. Abfrage-Builder: Laravel verfügt über eine flexible verkettete Abfrage-API, während der Abfrage-Builder von CodeIgniter einfacher und Array-basiert ist. Datenvalidierung: Laravel bietet eine Validator-Klasse, die benutzerdefinierte Validierungsregeln unterstützt, während CodeIgniter über weniger integrierte Validierungsfunktionen verfügt und eine manuelle Codierung benutzerdefinierter Regeln erfordert. Praxisfall: Beispiel einer Benutzerregistrierung zeigt Lar

Was ist einsteigerfreundlicher: Laravel oder CodeIgniter? Was ist einsteigerfreundlicher: Laravel oder CodeIgniter? Jun 05, 2024 pm 07:50 PM

Für Anfänger bietet CodeIgniter eine sanftere Lernkurve und weniger Funktionen, deckt aber die Grundbedürfnisse ab. Laravel bietet einen größeren Funktionsumfang, weist jedoch eine etwas steilere Lernkurve auf. In Bezug auf die Leistung schneiden sowohl Laravel als auch CodeIgniter gut ab. Laravel verfügt über eine umfangreichere Dokumentation und aktive Community-Unterstützung, während CodeIgniter einfacher und leichtgewichtiger ist und über starke Sicherheitsfunktionen verfügt. Im praktischen Fall der Erstellung einer Blogging-Anwendung vereinfacht EloquentORM von Laravel die Datenmanipulation, während CodeIgniter mehr manuelle Konfiguration erfordert.

Laravel vs CodeIgniter: Welches Framework ist besser für große Projekte? Laravel vs CodeIgniter: Welches Framework ist besser für große Projekte? Jun 04, 2024 am 09:09 AM

Bei der Auswahl eines Frameworks für große Projekte haben Laravel und CodeIgniter jeweils ihre eigenen Vorteile. Laravel ist für Anwendungen auf Unternehmensebene konzipiert und bietet modularen Aufbau, Abhängigkeitsinjektion und einen leistungsstarken Funktionsumfang. CodeIgniter ist ein leichtes Framework, das sich eher für kleine bis mittelgroße Projekte eignet und Wert auf Geschwindigkeit und Benutzerfreundlichkeit legt. Für große Projekte mit komplexen Anforderungen und einer großen Anzahl von Benutzern sind die Leistung und Skalierbarkeit von Laravel besser geeignet. Für einfache Projekte oder Situationen mit begrenzten Ressourcen sind die leichten und schnellen Entwicklungsfunktionen von CodeIgniter idealer.

Laravel – Handwerkerbefehle Laravel – Handwerkerbefehle Aug 27, 2024 am 10:51 AM

Laravel – Artisan Commands – Laravel 5.7 bietet eine neue Möglichkeit, neue Befehle zu behandeln und zu testen. Es enthält eine neue Funktion zum Testen von Handwerkerbefehlen und die Demonstration wird unten erwähnt?

Laravel vs CodeIgniter: Welches Framework ist besser für kleine Projekte? Laravel vs CodeIgniter: Welches Framework ist besser für kleine Projekte? Jun 04, 2024 pm 05:29 PM

Für kleine Projekte eignet sich Laravel, für größere Projekte, die starke Funktionalität und Sicherheit erfordern. CodeIgniter eignet sich für sehr kleine Projekte, die geringes Gewicht und Benutzerfreundlichkeit erfordern.

Welche ist die bessere Template-Engine, Laravel oder CodeIgniter? Welche ist die bessere Template-Engine, Laravel oder CodeIgniter? Jun 03, 2024 am 11:30 AM

Vergleichen Sie Laravel's Blade und die Twig-Vorlagen-Engine von CodeIgniter und wählen Sie je nach Projektanforderungen und persönlichen Vorlieben: Blade basiert auf der MVC-Syntax, die eine gute Codeorganisation und Vorlagenvererbung fördert. Twig ist eine Bibliothek eines Drittanbieters, die flexible Syntax, leistungsstarke Filter, erweiterten Support und eine Sicherheits-Sandbox bietet.

Laravel – Artisan-Konsole Laravel – Artisan-Konsole Aug 27, 2024 am 10:51 AM

Laravel – Artisan Console – Das Laravel-Framework bietet drei Haupttools für die Interaktion über die Befehlszeile, nämlich Artisan, Ticker und REPL. In diesem Kapitel wird Artisan ausführlich erläutert.

See all articles