Този урок ще ви преведе през настройването на множество домейни и уебсайтове с помощта на виртуални хостове на Apache на сървър Ubuntu 18.04. По време на този процес ще научите как да предоставяте различно съдържание на различни посетители в зависимост от това кои домейни заявяват.
За по-подробна версия на този урок, с повече обяснения на всяка стъпка, вижте Как да настроите виртуални хостове на Apache на Ubuntu 18.04.
За да завършите този урок, ще ви трябва достъп до следното на Ubuntu 18.04 сървър:
Потребител на sudo на вашия сървър. Уеб сървър Apache2, който можете да инсталирате със sudo apt install apache2Първо ще направим структура на директория, която ще съдържа данните на сайта които ще обслужваме на посетителите в нашата директория на Apache от най-високо ниво. Ще използваме примерни имена на домейни, подчертани по-долу. Трябва да ги замените с вашите действителни имена на домейни.
sudo mkdir -p /var/www/example.com/public_htmlsudo mkdir -p /var/www/test.com/public_htmlСега трябва да променим разрешенията на нашите текущият не-root потребител, за да може да променя файловете.
sudo chown -R $USER:$USER /var/www/example.com/public_htmlsudo chown -R $USER:$USER /var/www/test.com/public_htmlОсвен това ще гарантираме, че достъпът за четене е разрешени за общата уеб директория и всички файлове и папки, които съдържа, така че страниците да могат да се обслужват правилно.
sudo chmod -R 755 /var/wwwНека създадем малко съдържание за обслужване, ще направим демонстрационна страница index.html за всеки сайт. Можем да отворим файл index.html в текстов редактор за нашия първи сайт, използвайки например nano.
nano /var/www/example.com/public_html/index.htmlВ този файл създайте специфичен за домейн HTML документ, като следния:
/var/www/example.com/public_html/index.html
Добре дошли в Example.com!Успех! Виртуалният хост example.com работи!
Запазете и затворете файла, след което копирайте този файл, за да го използвате като основа за нашия втори сайт:
cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.htmlОтворете файла и променете съответните части от информация:
nano /var/www/test.com/public_html/index.html/var/www/test.com/public_html/index.html
Добре дошли в Test.com!Успех! Виртуалният хост test.com работи!
Запазете и затворете и този файл.
Apache идва с виртуален хост файл по подразбиране, наречен 000-default.conf, който ще използваме като шаблон. Ще го копираме, за да създадем виртуален хост файл за всеки от нашите домейни.
Започнете с копиране на файла за първия домейн:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.confОтворете новия файл във вашия редактор (ние използваме nano по-долу) с root привилегии:
sudo nano /etc/apache2/sites-available/example.com.confЩе персонализираме този файл за нашия собствен домейн. Променете маркирания текст по-долу за вашите собствени обстоятелства.
/etc/apache2/sites-available/example.com.conf
ServerAdmin admin@example.comServerName example.comServerAlias www.example.comDocumentRoot /var/www/example.com/public_htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log комбинираноВ този момент запазете и затворете файла.
Сега, след като имаме създаден първия виртуален хост файл, можем да създадем втория, като копираме този файл и го коригираме според нуждите.
Започнете, като го копирате:
sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.confОтворете новия файл с root права във вашия редактор:
sudo nano /etc/apache2/sites-available/test.com.confСега трябва да модифицирате всички части от информацията, за да посочите вашия втори домейн. Крайният файл трябва да изглежда по следния начин, с подчертан текст, съответстващ на информацията за вашия собствен домейн.
/etc/apache2/sites-available/test.com.conf
ServerAdmin admin@test.comServerName test.comServerAlias www.test.comDocumentRoot /var/www/test.com/public_htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log комбинираноЗапазете и затворете файла, когато вие сте готови.
След като нашите виртуални хост файлове са създадени, трябва да ги активираме. Ще използваме инструмента a2ensite, за да постигнем тази цел.
sudo a2ensite example.com.confsudo a2ensite test.com.confСлед това деактивирайте сайта по подразбиране, дефиниран в 000-default.conf:
sudo a2dissite 000-default.confКогато приключите, трябва да рестартирате Apache, за да влязат в сила тези промени и да използвате statusctl status, за да проверите успеха на рестартирането.
sudo systemctl restart apache2Вашият сървър вече трябва да е настроен да обслужва два уебсайта.
Ако не сте използвали действителни имена на домейни, които притежавате, за да тествате тази процедура и вместо това сте използвали някои примерни домейни, можете да тествате вашата работа, като временно модифицирате файла hosts на вашия локален компютър.
На локална Mac или Linux машина въведете следното:
За локална машина с Windows, намерете инструкции за промяна на файла с хостове тук.
Използвайки домейните, използвани в това ръководство, и заменяйки IP на вашия сървър с текста your_server_IP, вашият файл трябва да изглежда така:
/etc/hosts
127.0.0.1 localhost127.0.1.1 guest-desktopyyour_server_IP example.comyour_server_IP test.comЗапазете и затворете файла. Това ще насочи всички заявки за example.com и test.com на нашия компютър и ще ги изпрати до нашия сървър.
Сега, след като имате конфигурирани виртуални хостове, можете да тествате настройката си, като отидете на домейните, които сте конфигурирали във вашия уеб браузър:
http://example.comТрябва да видите страница, която изглежда така:
Можете също да посетите втората си страница и да видите файла, който сте създали за втория си сайт.
http://test.comАко и двата сайта работят според очакванията, вие сте конфигурирали два виртуални хоста на един и същи сървър.
Ако сте коригирали хост файла на домашния си компютър, изтрийте редовете, които сте добавили.
Ето връзки към още допълнителни ръководства, свързани с този урок:
PREV: Как да нулирате Minecraft сървър
NEXT: DNS сървър не може да се използва ps4; Проблеми при игра онлайн с ...