Щоб створити субдомени, вам доведеться переконатися в кількох речах:
DNS
Щоб інші могли дістатися test.my.address.com
, вони спочатку повинні мати змогу вирішити це ім'я за IP-адресою вашої віртуальної машини. Як це можна зробити?
Те, що ваш друг, швидше за все, вже робив, це створити запис A у address.com
зоні, який вказує my
на IP-адресу вашого VM.
Все йде нормально. А як же test.my
? Можливо, ще немає запису.
Ваш друг також може просто додати *.my
до зони (і вказати на ту саму IP-адресу). Тоді весь запит something.my.address.com
буде надіслано вашій машині управління. Чудово!
Віртуальні хости Apache
Після того, як ваш VM можна отримати, Apache повинен знати, як обробляти запит. Тут ми використовуємо функцію Virtual Hosts на HTTP-сервері Apache.
Зазвичай я запускаю 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
.
Listen
, подивіться на віртуальні хости Apaches: httpd.apache.org/docs/2.2/vhosts