web-dev-qa-db-ja.com

VirtualHostsを使用したサブドメインの基本を理解する

私のサイトに2つのサブドメインを作成したいと思います。そのために、defaultファイルのsites-available(UbuntuでApacheを使用しています)の下に3つのVirtualHostを作成しました。

<VirtualHost 127.0.0.1>
     ServerName nmagerko.me
     ...
     DocumentRoot /var/www
     ...
</VirtualHost>

<VirtualHost 127.0.0.1>
     ServerName sub1.nmagerko.me
     ...
     DocumentRoot /some/different/path
     ...
</VirtualHost>

<VirtualHost 127.0.0.1>
     ServerName sub2.nmagerko.me
     ...
     DocumentRoot /some/different/path2
     ...
</VirtualHost>

しかし、それ以降はどうしたらいいのかわかりません。これらの各サブドメインとプライマリドメインを/etc/hostsファイルに127.0.0.1として設定し、ドメインレジストラのドメインエディタでsub1sub2のAレコードを設定しました。ただし、これらのAレコードはプライマリドメインと同じIPを指しています。これは、すべて1つのシステムでホストされているためです...これはあまり役に立ちません。そのため、ブラウザでsub1.nmagerko.meにアクセスすると、nmagerko.meにアクセスした場合と同じサイトが表示されます。

続行する方法について何か提案はありますか?

1
nmagerko

うーん、あなたが書いた設定は私には正しいように思われるので、問題をデバッグする方法を紹介しようと思います。

1- Dig nmagerko.meDig sub1.nmagerko.me、およびDig sub2.nmagerko.meを実行し、IPを探してDNSが正しく構成されていることを確認します。 wget X.nmagerko.meを使用してテストします。ブラウザは、DNS応答をキャッシュしている可能性があります。

2- /some/different/path/var/www、および/some/different/pat2のファイルが異なることを確認します。

3-必ずApacheを再起動してください

SudoサービスApache2の再起動

また、ログも確認できます。

この助けを願っています。

2
canciobello

すべてのインスタンスでIPアドレスをポート80のみに変更してみてください。

<VirtualHost *:80>
    ServerName nmagerko.me
    ...
    DocumentRoot /var/www
    ...
</VirtualHost>

これは、仮想ホストが内部(ローカル)トラフィックのみをリッスンしている問題の解決に役立つ場合があります。ドメインAレコードを設定しているので、公開されているサーバーを使用していると思いますか?

Confファイルを変更した後は、Apacheをリロードすることを忘れないでください。

$ Sudo service Apache2 reload

最後に、これはローカルでテストしているだけであることをお知らせください。そうである場合は、ドメインのAレコードを変更する必要はないでしょう(独自のプライベートDNSをホストしている場合を除く)。

3
fideloper

Httpd.conf全体(インクルードを含む)がないと、ここから判断することは不可能ですが、追加します

NameVirtualHost 127.0.0.1:80

最初の<virtualHost domain:80>の上が役立つかもしれませんか?変更後、Apacheを再起動します。

1
Daniel Widrick