Menu/Prof
スズキマコト
自由人
元々は楽器屋のギター兄ちゃん。
趣味でプログラミングしてるうちに
本職になってしまった人。

過去に喋っていた言語
c pascal Assembler
perl PHP Python Ruby など
javascriptなどは都度必要に応じて。
最近Mac買ったのでswift勉強してます。

体ぶっ壊して死にかけたので人生RESET中。

ローカル開発環境でのドメイン選び:パフォーマンス向上の秘訣

X
     この記事はプロモーションを含みます

ローカル開発環境を構築する際、多くの人が何気なく設定してしまうドメイン名。しかし、このドメイン名が環境のパフォーマンスや快適さに直接影響を与えることをご存じでしょうか?この記事では、私が経験した“local”ドメインから“lan”ドメインへの移行ストーリーを通じて、ドメイン選びの重要性と具体的な効果をお伝えします。


contents

1. 何も考えずにmlabo.localを使い始めた理由

何も考えずにmlabo.localを使い始めた理由

開発環境の初期構築では、多くの場合、深く考えずに動作する設定を選びがちです。私もその一人で、特に理由もなく“local”ドメインを使い始めました。/etc/hostsファイルに次のような設定を追加し、ローカルIPアドレスに名前を割り当てただけです。

10.211.55.7    mlabo.local

初期段階では、特に問題なく動作していたため、この設定を使い続けていました。


2. 名前解決に時間がかかる問題の発生

名前解決に時間がかかる問題の発生

プロジェクトが進むにつれ、mlabo.localへのアクセスで明らかに待ち時間が増える状況に直面しました。例えば、ブラウザでリロードするたびに3~5秒程度の遅延が発生し、ページ読み込みが非常に遅く感じられることが頻発しました。この遅延により、デバッグ作業にも支障が出るようになりました。

この原因は、.localドメインがAppleのBonjourサービス(mDNS)と競合していたためでした。mDNSはローカルネットワーク内のデバイスを自動検出する仕組みですが、このプロセスが名前解決の遅延を引き起こしていたのです。


3. ローカルに適した名前の存在を知らなかった

ローカルに適した名前の存在を知らなかった

この時点では、.local以外にもローカル開発に適したドメインがあることを知りませんでした。しかし、調査を進めると、次のような選択肢が見つかりました:

  • .lan: 非公式ながらローカルネットワークでよく利用される。
  • .test: 公式に予約されているTLDで、外部へ影響しない。
  • .home.internal: 自宅や内部ネットワーク向け。
  • 例外的使用↓
  • .dev は、ウェブアプリケーション、ソフトウェア開発、プロトタイプ作成などに利用されることを目的としています。(しかしGoogleによって HSTS(HTTP Strict Transport Security)プリロードリスト に登録されています。)当然外のDNSで名前解決できる系のTLDなのでローカルで使う時には注意。

これらの選択肢は、mlabo.localのようにmDNSの影響を受けることがありません。


4. mlabo.devに変更して起きた予想外の問題

mlabo.devに変更して起きた予想外の問題

とりあえずなんちゃって開発屋なので新しいTLDとして.devを採用することにしました。この選択は、将来的な拡張性とモダンな開発環境を意識したものでした。.devはGoogleが管理する開発者向けのTLDであり、開発用として視覚的にも分かりやすく、他のプロジェクトと区別しやすいと考えたためです。/etc/hostsに次のような設定を追加しました。

10.211.55.7    mlabo.dev

しかし、ブラウザでアクセスしようとすると、「接続拒否 (ERR_CONNECTION_REFUSED)」のエラーが発生しました。調べてみると、.devドメインはGoogleが管理しており、HSTS(HTTP Strict Transport Security)のプリロード対象であることが分かりました。このため、HTTPS通信が必須となり、Apacheの設定を変更しない限りアクセスが拒否されてしまいます。
イントラの中でhttpでいいし偽証明書をこのためだけにつくるのめんどくさいという事で即却下笑


5. mlabo.localが仮想ホスト未設定でも動いていた理由

mlabo.localが仮想ホスト未設定でも動いていた理由

これまでmlabo.localが仮想ホストを設定していなくても動作していたのは、Apacheのデフォルト設定のおかげでした。具体的には、Apacheには000-default.confというデフォルトの仮想ホスト設定が存在します。

デフォルト設定例

<VirtualHost *:80>
    DocumentRoot /var/www/html
</VirtualHost>

この設定により、仮想ホストが未設定の場合でも、すべてのリクエストが/var/www/htmlに転送されていたのです。


6. mlabo.lanの仮想ホスト設定を追加して快適に!

最終的に、mlabo.lanドメインを採用することに決定しました。/etc/hostsに以下のように設定を変更しました。

10.211.55.7    mlabo.lan

さらに、Apacheの仮想ホスト設定を新規に作成しました。

仮想ホスト設定ファイルの作成

新規ファイルを作成:

sudo vi /etc/apache2/sites-available/mlabo.lan.conf

次の内容を記述:

<VirtualHost *:80>
    ServerName mlabo.lan
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/mlabo.lan-error.log
    CustomLog ${APACHE_LOG_DIR}/mlabo.lan-access.log combined
</VirtualHost>

仮想ホストを有効化してApacheを再起動:

sudo a2ensite mlabo.lan.conf
sudo systemctl restart apache2

これにより、名前解決の遅延が完全に解消され、アクセス速度が平均して3~5秒からほぼ瞬時(1秒未満)になりました。開発環境が劇的に快適になり、作業効率が大幅に向上しました!


ローカル開発に最適なTLD選び:おすすめと注意点

ローカル開発に最適なTLD選び:おすすめと注意点

おすすめのTLD

  • .lan: ローカルネットワークでの利用に最適。
  • .test: 安全で予約済みのTLD。
  • .home: 個人のネットワークに適した選択肢。

避けるべきTLD

  • .local: mDNSによる競合で遅延の原因に。
  • .dev: HTTPS設定が必須で、手間が増える。

まとめ:ドメイン選びが開発効率を変える!

まとめ:ドメイン選びが開発効率を変える!

ローカル開発環境のドメイン選びは、単なる名前の問題ではありません。適切なTLDを選択することで、名前解決の速度が改善され、遅延によるストレスが解消されるだけでなく、作業効率も大きく向上します。

私の経験を参考に、環境を見直してみてはいかがでしょうか?.lanドメインは、シンプルかつ高速なローカル開発環境の鍵となる選択肢です!

ローカル開発環境のドメイン設定に関するよくある質問

.localドメインを使用すると、なぜ名前解決に時間がかかるのですか?

.localドメインは、AppleのBonjourサービス(mDNS)と競合するため、名前解決に遅延が生じることがあります。

ローカル開発環境に適したドメインにはどのようなものがありますか?

.lan、.test、.homeなどがローカル開発に適したドメインとして推奨されます。

.devドメインを使用する際の注意点は何ですか?

.devドメインはGoogleが管理しており、HTTPS通信が必須となるため、適切なSSL設定が必要です。

.lanドメインに変更することで、どのような効果が期待できますか?

.lanドメインに変更することで、名前解決の遅延が解消され、ローカル開発環境のパフォーマンスが向上します。

Apacheで新しいドメインを設定する方法を教えてください。

/etc/hostsファイルに新しいドメインを追加し、Apacheの仮想ホスト設定ファイルを作成・有効化してから、Apacheを再起動してください。

シェアしてくれると喜びます
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

makotoのアバター makoto Blogger&YouTuber

サーバー管理者として17年ほど仕事でサーバー触ってました。
www,mail,dns,sql各鯖をすべてFreeBSDで運用してましたが現世ではかなりレアなタイプになるみたいですね笑

viやシェルスクリプトとかperlとかgccとかFreeBSDとか実はbashよりtcshが好きとか時々寝ぼけるのは
その名残でしょう。

今まで縁の下の力持ち的な他人のためにプログラムを書き他人のためにサーバー構築し他人のためにWEBサイトを創る的な世界から
自分の好きなことに集中できる環境は実に気持ち良いですね。
現役は引退済みなので難しいことはやりませんしやれません。

現在 ほぼ自由人。

contents