Ad tabanlı bir sanal ana bilgisayarda alt etki alanları nasıl oluşturulur?


27

İsme dayanan bir barındırma var, arayalım my.address.com. Arkadaşım 'sade' bir adrese sahip address.comve bana SSH ile erişebileceğim sanal bir makine verdi.

O da limanların ile biraz büyü yaptı ve şimdi, Apache yükledikten sonra, ben erişebilir /var/wwwyoluyla my.address.com.

Peki, soru şu, nasıl bir alt etki alanı yapabilirim test.my.address.com?

Apache'nin Dinleme Yönergesi ile ilgili bir sihir olmalı , ama çözemiyorum. Ayrıca, Apache ile yerel olarak nasıl kullanılabilir siteler oluşturabileceğimi biliyorum ama aynı değil.


İhtiyacınız olmayacak Listen, Apaches sanal konaklarına bakın: httpd.apache.org/docs/2.2/vhosts
Der

asıl soru kaldı - ServerName yönergesi ne yazmalı?
scythargon

Yanıtlar:


33

Alt alanlar oluşturabilmek için birkaç şeyden emin olmanız gerekir:

DNS

Diğerlerinin ulaşabilmesi test.my.address.comiçin önce bu adı sanal makinenizin IP adresine çözebilmeleri gerekir. Bu nasıl yapılabilir?

Arkadaşınız büyük olasılıkla zaten ne yaptık, bir yaratmaktı A kaydını içinde address.combölge, puan myVM IP adresine.

Çok uzak çok iyi. Peki ya test.my? Henüz bir girişi olmayabilir.

Arkadaşınız *.myda bölgeye ekleyebilir (ve aynı IP adresine işaret edebilir). O zaman tüm istek something.my.address.comVM'nize gönderilecek. Harika!

Apache Sanal Konakları

VM'nize erişildikten sonra Apache, isteğin nasıl ele alınacağını bilmek zorundadır. Apache HTTP sunucusunun Sanal Konak özelliğini kullanıyoruz .

Genelde Debian'ı çalıştırıyorum, bu yüzden bunu örnek bir yapılandırma ile açıklayacağım /etc/apache2/sites-available. Orada bir dosya arayalım test.my.address.comve bilgiyle dolduralım.

<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>

Anahtar ayarı bu dosya içindedir ServerNameyönergesi . Bu, Apache'ye bu sunucunun hangi isim altında olması gerektiğini söyler . ServerAlias ​​yönergesi ile ek adlar verilebilir .

Ayrıca Debian kullanıyorsanız sudo a2ensite test.my.address.com, dosyayı oluşturduktan sonra bunu unutmayın sudo invoke-rc.d apache2 restart.


Çok teşekkürler! :) Ben kendime yer verdim ve onunla ilgili arkadaşına e-posta yazdım. Tekrar teşekkürler :)
scythargon

@scythargon: Benim zevkim. Yardım etmek için buradayız :)
Der Hochstapler

Arkadaşım cevap vermediyse, olur mu lütfen? Nasıl çalıştığı hakkında ne düşündüm: http-request for test.my.address.comgo my.address.comve sonra VM'deki Apache sunucum bunu yapıyor. Ancak, address.com adresindeki DNS sunucusunun test.mytüm bunlardan önce ve bilmesi gerekenlerden bağımsız olarak bilmesi gerektiğini söylediniz my, neden?
scythargon

@scythargon: Herhangi bir HTTP isteğinin sunucunuza ulaşması için, önce herhangi bir istemcinin isteğin hangi sunucuya gönderileceğini bulması gerekir. Bu yüzden hostname geçerli olmalı. Aksi takdirde, sadece “bu adın bulunmadığı” söylenir.
Der Hochstapler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.