しばらくの間、hostsファイルを次のようにフォーマットしています。 2つの行に同じIPがあることに注意してください。
e.f.g.h foo.mydevsite.com
e.f.g.h foo.myOtherDevSite.com
私は最近、エイリアスが1行に統合されることになっていることを読みました:
e.f.g.h foo.mydevsite.com foo.myOtherDevSite.com
ただし、次のように特定のエイリアスを簡単にコメントアウトしたり、特定のエイリアスにコメントを追加したりすることができないため、この方法は好きではありません。
a.b.c.d foo.mydevsite.com # myDevSite on box 1
# a.b.c.d foo.myOtherSite.com # myOtherSite on box 1
a.b.c.d ubuntuBox
e.f.g.h foo.myOtherSite.com # myOtherSite testing environment
これまでのところ、これは問題なく機能しています。これに問題はありますか?
私はこれらの線に沿って何かをすることを議論するこのスレッドを見つけました。スレッドは、複数行を/etc/hosts
ファイル。
抜粋- Re:/ etc/hosts:同じIPアドレスを持つ2つの行?
いいえ、それはしません。リゾルバーは最初の解決で停止します。次のようなものを持つ:
127.0.0.1 localhost.localdomain localhost 127.0.0.1 somenode.somedom.com somenode
あなたが話していることをしません。しかし、持っている:
127.0.0.1 somenode.somedom.com somenode 127.0.0.1 localhost.localdomain localhost
あらゆる種類の混乱を引き起こします。転送を含みます。
私は通常、あなたがしようとしていることをしません。より多くの証拠が必要な場合は、manページでこれを行わないようにさえ言っています:
抜粋man hosts
このマニュアルページでは、/ etc/hostsファイルの形式について説明しています。このファイルは、IPアドレスをホスト名に関連付ける単純なテキストファイルで、IPアドレスごとに1行です。ホストごとに、次の情報を含む1行が表示されます。
IP_address canonical_hostname [aliases...]
このすべてが言われている、あなたのホスト名がFQDNであり、それらが重複しない場合、あなたはおそらくあなたがしていることをするのに安全です。上記のスレッドで述べたような重複がある場合は、問題を解決する可能性があることに注意してください。
3番目の方法は問題なく機能していると思います。これに問題はありますか?
私は常に少しずつ行ってきましたが、man gethostbyaddr
によると、システムコールはIPアドレスを名前に関連付けるために/etc/hosts
を使用する可能性があるため、潜在的な問題があります。はるかに一般的なケースはその逆(名前からアドレスを取得)ですが、何かおかしいことが起こった場合に備えて、これに注意してください。
Apache 2.4がUnixシステムでの起動を拒否しました。根本的な原因は、/ etc/hosts内の重複行です。重複した行を削除した後、Webサーバーを起動できました。