名前ベースの仮想ホストでサブドメインを作成する方法は?


27

名前ベースのホスティングがありますmy.address.com。友人には「プレーン」アドレスがaddress.comあり、SSH経由でアクセスできる仮想マシンを提供してくれました。

また、彼はportで魔法をかけ、Apacheをインストールした後、/var/wwwを通じてアクセスできましたmy.address.com

だから、質問は、どのようにサブドメインを作成できtest.my.address.comますか?

ApacheのListen Directiveには魔法があるはずですが、私にはわかりません。また、Apacheでローカルに利用可能なサイトを作成する方法を知っていますが、同じではありません。


あなたは必要ありませんListen:、アパッチ仮想ホストを見httpd.apache.org/docs/2.2/vhosts
デアHochstapler

主な質問は残っています-ServerNameディレクティブに何を書くのですか?
scythargon

回答:


33

サブドメインを作成できるようにするには、いくつかのことを確認する必要があります。

DNS

そのためtest.my.address.com、他のユーザーはに到達できるため、最初にその名前を仮想マシンのIPアドレスに解決できる必要があります。どうすればできますか?

おそらく友人がすでにやっていたことは、VMのIPアドレスを指すAレコードaddress.comゾーンに作成することでしたmy

ここまでは順調ですね。しかし、どうtest.myですか?まだエントリがない場合があります。

あなたの友人は、単純に*.myゾーンに追加することもできます(そして、同じIPアドレスをポイントします)。その後、すべてのリクエストがsomething.my.address.comVMに送信されます。すばらしいです!

Apache仮想ホスト

VMに到達したら、Apacheはリクエストの処理方法を知る必要があります。これは、Apache HTTPサーバーの仮想ホスト機能を使用する場所です。

私は通常Debianで実行しているので、これをの設定例で説明し/etc/apache2/sites-availableます。というファイルがありますtest.my.address.comて、情報を入力し。

<VirtualHost *:80>
        ServerName test.my.address.com
        ServerAdmin webmaster@my.address.com

        DocumentRoot /var/www/test.my.address.com/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/test.my.address.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/test.my.address.com.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/test.my.address.com.access.log combined
</VirtualHost>

このファイル内の主要な設定ServerNameディレクティブです。これにより、このサーバーが使用可能な名前がApacheに通知されます。追加の名前は ServerAliasディレクティブで

Debianも使用しているsudo a2ensite test.my.address.com場合は、ファイルとを作成したことを忘れないでくださいsudo invoke-rc.d apache2 restart


どうもありがとう!:)私は自分のパートを作り、彼のパートについて友人にメールを書きました。もう一度ありがとう:)
scythargon

@scythargon:私の喜び。私たちは助けるためにここにいます:)
デアホッホシュプラー

私の友人が私に答えなかったが、お願いします。私はそれがどのように動作するかについて考えた:HTTPリクエストのためにすることtest.my.address.comになりmy.address.com、その後、VM上の私のApacheサーバは、それを処理します。しかし、あなたはaddress.comのDNSサーバーがtest.my、これに関するすべてのことを知ってからmy、についての知識とは無関係に知っているべきだと言ったのはなぜですか?
-scythargon

@scythargon:HTTPリクエストがサーバーに到達するためには、クライアントはまずどのサーバーにリクエストを送信する必要があるかを把握する必要があります。そのため、ホスト名は有効でなければなりません。それ以外の場合は、「その名前は存在しません」と通知されます。
デアホッホステープラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.