次の laravel のチュートリアル コラムでは、不適切なホスト ファイル構成 (Laravel-Sail 開発環境) によって引き起こされるアプリケーション ラグの問題を紹介します。それを必要としている友達に役立つでしょう。助けてください!
今日はプロジェクトのソースコードをプルダウンして、新しい Laravel-Sail 開発環境を使用しましたが、以前の Homestead 開発環境は単なるバックアップとなっています。最初は、依存関係のインストール、コンテナーの起動、データの移行など、すべてがスムーズに進みました。その後、開発用のドメイン名をホスト ファイルに喜んで構成しました:
127.0.0.1 devocus.test
ブラウザを開いて、http :/ にアクセスします。 /devocus.test:8016
, すべてがうまくいっていると思っていましたが、ページが常に読み込まれていることがわかり、完全なインターフェイスが読み込まれるまでに 30 秒近くかかりました。困惑しました。他にもいくつかのプロジェクトがあり、いつもLaravel-Sail 開発環境を使用すると、ほとんどの場合数秒で開始されます。このプロジェクトは肥大化していますか?
その後、ブラウザーの開発者ツールを開いたところ、すべてのリクエストに 30 秒以上かかったことがわかりました。ファイル IO の問題が発生しましたか?しかし、私のプロジェクトは Ubuntu サブシステムに配置されています。ネット障害?その他の項目は全く正常です。ファイルのパーミッションを変更する、ラダーを閉じる、コンテナを削除して再作成するなど、考えられるすべての解決策を試しましたが、役に立ちませんでした。
そこで、Telescope をインストールし、各リクエストの詳細を確認しました。Telescope を開くのも非常に遅く、Telescope インターフェイスが最終的にロードされるまで約 1 分待ちました。しかし、クエリ結果には非常に驚きました:
Telescope は、各リクエストが非常に高速に処理され、データ クエリも非常に高速であることを示しています。私は驚きました...
そこで、同僚のコンピュータで試してみました。開発環境はLaravel-Sailでした。思いがけず、同僚のコンピュータでもアクセスが非常に遅かったのです。これがそのまま「問題がある」という方向に考えを導きました。プロジェクトコード」を参照して、午前中をかけてさまざまな設定ファイルとenvファイルを慎重に比較および確認し、laravelとさまざまな依存バージョンをアップグレードしました。しかし、大きな期待を持ってブラウザでアプリケーションを開くたびに、依然としてフリーズして人生を疑いますが、ログ記録はすべて正常です。次に、検索エンジンを使用してこの問題の解決策を探しますが、中国語または英語で検索しても結果がありません。一日経ってもこの問題は解決せず、絶望感さえ覚えました。
最後に、まずは昼食をとりに行ってリラックスすることにしました。夕食の帰り道、もう一度この疑問について考えたとき、頭の中で調べたさまざまな答えが次々と浮かび上がり、突然目の前に「hosts
」という言葉が浮かんできました。
ワークステーションに戻って、コンピューターの電源を入れ、IP を使用してアプリケーションに直接アクセスして状況を確認しようと考えたので、ブラウザを開くと、インターフェイスがすぐに開きました。おそらく少し混乱したので、hosts ファイルを開いてドメイン名を変更することを考えました: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"># 127.0.0.1 devocus.test
127.0.0.1 ifocus-dev.test</pre><div class="contentsignin">ログイン後にコピー</div></div>
それからブラウザを開き、
を適用して、すぐにスムーズに開き、問題は不可解にも解決されました。 しかし、何が問題なのでしょうか?もう一度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
上から下までdevocus.testに検索します。同じドメイン名の場合は、最初のアドレスを取得します。 IP: 最初の IP がブロックされた場合、2 番目の IP または N 番目の IP に切り替わります。ただし、この方法では負荷分散効果は得られませんが、Web サイトが開く可能性は高くなります。
を 2 つの IP アドレス (192.168.10.10 と 127.0.0.1) に解析したため、ブラウザで http:// を開くと devocus.test
、最初は 192.168.10.10 にアクセスしますが、ホームステッドが閉鎖されているため、アクセスは失敗するはずです。このプロセスは約 30 秒続きます。その後、システムはホスト ファイル内の他の IP の検索を続け、Web ページを見つけます。 127.0.0.1 にアクセスした場合にのみ開かれました。すべてのリクエストがこのプロセスを通過する必要があるため、システムが非常に行き詰まっていると感じます。この時点で、私を悩ませていた問題は解決されました。 <p>ですから、プロジェクトを開発する際には、皆さんもこうした微妙な問題にもっと注意を払う必要があります。小さな問題が大きな問題を引き起こすこともよくあります。私のような独善的なベテランでも、深い落とし穴にはまってしまいます。ソフトウェア業界は実際には、絶えず穴を踏み、穴を掘り、穴を埋める必要がある現実的な業界です。 </p>
<p>しかし考えてみると、もし当時ホームステッド環境が開いていたら、もっと困っていたかも知れません。 <span class="rm-link-color"></span></p>
以上がホストファイル構成エラーによりアプリケーションの遅延が発生する (Laravel-Sail 開発環境)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。