Heim > Artikel > PHP-Framework > Konfigurationsfehler der Hosts-Datei verursacht Anwendungsverzögerung (Laravel-Sail-Entwicklungsumgebung)
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: 127.0.0.1 devocus.test
Ö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 的界面终于加载出来了。但是查询结果令我非常意外:
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
然后打开浏览器,输入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
在 hosts 文件中,同一个域名解析到两个 ip 会发生什么情况呢?我去搜索引擎上搜索了一下,找到了答案:
电脑在hosts文件中是由上往下查找 IP,相同的域名取第一个 IP,如果第一个IP受阻,那么会转向第二个IP,乃至第N个,但是这种方式达不到负载均衡的效果,但可以增大打开网站的几率。
由于我将 devocus.test
解析到了两个IP地址:192.168.10.10 及127.0.0.1,当我在浏览器中打开http://devocus.test
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!