• Дигитални аксесоари
  • сървър
  • Дигитален живот
  • Политика за поверителност
  • Свържете се с нас
  1. Home
  2. Article
  3. Как да конфигурирате виртуални хостове на Apache в Ubuntu 18.04 LTS - OSTechNix

Как да конфигурирате виртуални хостове на Apache в Ubuntu 18.04 LTS - OSTechNix

Rsdaa 27/10/2021 1936

Какво е Apache Virtual Hosts?

Терминът виртуален хост се отнася до метода за работа на повече от един уебсайт като host1.domain.com, host2.domain.com или www.domain1 .com, www.domain2.com и т.н., в една система. Има два вида виртуален хостинг в Apache, а именно IP базиран виртуален хостинг и базиран на имена виртуален хостинг. С IP-базиран виртуален хостинг можете да хоствате множество уебсайтове или домейни на една и съща система, но всеки уебсайт/домейн има различен IP адрес. С виртуален хостинг, базиран на имена, можете да хоствате множество уебсайтове/домейни на един и същ IP адрес. Виртуалният хостинг може да бъде полезен, ако искате да хоствате множество уебсайтове и домейни от един физически сървър или VPS. Надяваме се, че сте разбрали основната идея за виртуалните хостове на Apache. Днес ще видим как да конфигурираме виртуални хостове на Apache в Ubuntu 18.04 LTS.

Конфигуриране на виртуални хостове на Apache в Ubuntu 18.04 LTS

IP адресът на тестовата ми кутия е 192.168.225.22, а името на хоста е ubuntuserver.

Първо, ще видим как да конфигурираме базирани на имена виртуални хостове в уеб сървъра на Apache.

Конфигуриране на базирани на имена виртуални хостове1. Инсталирайте уеб сървъра на Apache

Уверете се, че сте инсталирали уеб сървъра на Apache. За да го инсталирате на Ubuntu, изпълнете:

$ sudo apt-get install apache2

След като apache е инсталиран, проверете дали работи или не, като прегледате тестовата страница на apache в браузъра.

Отворете вашия уеб браузър и го насочете към http://IP_Address или http://localhost. Трябва да видите страница като по-долу.

Добре! Уеб сървърът на Apache е готов и работи!!

2. Създайте уеб директория за всеки хост

Ще създам два виртуални хоста, а именно ostechnix1.lan и ostechnix2.lan.

Нека създадем директория за първия виртуален хост ostechnix1.lan. Тази директория е необходима за съхраняване на данните на нашите виртуални хостове.

За да направите това, въведете:

$ sudo mkdir -p /var/www/html/ostechnix1.lan/public_html

По същия начин създайте директория за втори виртуален хост ostechnix2.lan, както е показано по-долу.

$ sudo mkdir -p /var/www/html/ostechnix2.lan/public_html

Горните две директории са собственост на root потребител. Трябва да променим собствеността на обикновен потребител.

За да направите това, изпълнете:

$ sudo chown -R $USER:$USER /var/www/html/ostechnix1.lan/public_html$ sudo chown -R $USER:$USER /var/www/html/ostechnix2.lan/public_html

Тук, $ USER препраща текущо влезлия потребител.

След това задайте разрешения за четене на основната директория на Apache, т.е. /var/www/html/, като използвате командата:

$ sudo chmod -R 755 /var/www/html/

Правим това, защото вече създадохме отделна директория за всеки виртуален хост за съхраняване на техните данни. Така че направихме главната директория на apache като само за четене за всички потребители, с изключение на root потребителя.

Създадохме необходимите директории за съхраняване на данни на всеки виртуален хост, настройте правилните разрешения. Сега е време да създадете няколко примерни страници, които ще се обслужват от всеки виртуален хост.

3. Създайте демонстрационни уеб страници за всеки хост

Нека създадем примерна страница за сайта ostechnix1.lan. За да направите това, стартирайте:

$ sudo vi /var/www/html/ostechnix1.lan/public_html/index.html

Добавете следните редове в него:

www.ostechnix.lan

Здравейте, това е тестова страница за уебсайта ostechnix1.lan

Запазете и затворете файла.

По същия начин създайте примерна страница за сайта ostechnix2.lan:

$ sudo vi /var/www/html/ostechnix2.lan/public_html/index.html

Добавете следните редове в него:

www.ostechnix.lan

Здравейте, това е тестова страница за уебсайта ostechnix2.lan

Запазете и затворете файла.

4. Създайте конфигурационен файл за всеки хост

След това трябва да създадем конфигурационни файлове за всеки виртуален хост. Първо, нека направим това за сайта ostechnix1.lan.

Копирайте файла за виртуален хост по подразбиране, наречен 000-default.conf contents, в новите файлове за виртуален хост, както по-долу.

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ostechnix1.lan.conf$ sudo cp /etc/apache2/sites-available/000-default.conf /etc /apache2/sites-available/ostechnix2.lan.conf

Моля, имайте предвид, че трябва да запазите всички конфигурационни файлове с разширение .conf в края, в противен случай няма да работи.

Сега променете конфигурационните файлове, за да съответстват на нашите виртуални хостове.

Редактирайте файла ostechnix.lan1.conf:

$ sudo vi /etc/apache2/sites-available/ostechnix1.lan.conf

Редактиране/промяна на стойностите на ServerAdmin, ServerName, ServerAlias ​​и DocumentRoot съответства на виртуален хост.

# Директивата ServerName задава схемата на заявката, името на хоста и порта, които # сървърът използва, за да се идентифицира. Това се използва при създаване на # URL адреса за пренасочване. В контекста на виртуалните хостове, ServerName # указва кое име на хост трябва да се появи в Host: заглавката на заявката, за да # съответства на този виртуален хост. За виртуалния хост по подразбиране (този файл) тази # стойност не е решаваща, тъй като независимо от това се използва като хост за последна инстанция. # Въпреки това, трябва изрично да го зададете за всеки друг виртуален хост. #ServerName www.example.comServerAdmin [имейл защитен] ServerName ostechnix1.lan Псевдоним на сървъра www.ostechnix1.lan DocumentRoot /var/www/html/ostechnix1.lan/public_html # Налични нива на журнал: trace8, ..., trace1, debug, info, забелязвам, предупреждавам, # грешка, критика, предупреждение, възникване. # Възможно е също така да конфигурирате нивото на loglevel за конкретни # модули, напр. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log комбиниран # За повечето конфигурационни файлове от conf-available/, които са # активирани или деактивирани на глобално ниво, е възможно да # включва ред само за един конкретен виртуален хост. Например # следващият ред активира CGI конфигурацията за този хост само # след като е бил глобално деактивиран с "a2disconf". #Include conf-available/serve-cgi-bin.conf

Запазете и затворете файла.

След това редактирайте файла ostechnix2.lan.conf:

$ sudo vi /etc/apache2/sites-available/ostechnix2.lan.conf

Направете необходимите промени.

# Директивата ServerName задава схемата на заявката, името на хоста и порта, които # сървърът използва, за да се идентифицира. Това се използва при създаване на # URL адреса за пренасочване. В контекста на виртуалните хостове, ServerName # указва кое име на хост трябва да се появи в Host: заглавката на заявката, за да # съответства на този виртуален хост. За виртуалния хост по подразбиране (този файл) тази # стойност не е решаваща, тъй като независимо от това се използва като хост за последна инстанция. # Въпреки това, трябва изрично да го зададете за всеки друг виртуален хост. #ServerName www.example.comServerAdmin [имейл защитен] ServerName ostechnix2.lan Псевдоним на сървъра www.ostechnix2.lan DocumentRoot /var/www/html/ostechnix2.lan/public_html # Налични нива на журнал: trace8, ..., trace1, debug, info, забелязвам, предупреждавам, # грешка, критика, предупреждение, възникване. # Възможно е също така да конфигурирате нивото на loglevel за конкретни # модули, напр. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log комбиниран # За повечето конфигурационни файлове от conf-available/, които са # активирани или деактивирани на глобално ниво, е възможно да # включва ред само за един конкретен виртуален хост. Например # следващият ред активира CGI конфигурацията за този хост само # след като е бил глобално деактивиран с "a2disconf". #Include conf-available/serve-cgi-bin.conf

Запазете/затворете файла.

5. Активирайте конфигурационните файлове на виртуален хост

След като направите необходимите промени, деактивирайте конфигурационния файл на виртуален хост по подразбиране, т.е. 000.default.conf, и активирайте всички новосъздадени конфигурационни файлове на виртуален хост, както е показано по-долу.

$ sudo a2dissite 000-default.conf$ sudo a2ensite ostechnix1.lan.conf$ sudo a2ensite ostechnix2.lan.conf

Рестартирайте уеб сървъра на apache, за да влезете в сила промените.

$ sudo systemctl restart apache2

Това е. Успешно конфигурирахме виртуални хостове в Apache. Нека да продължим и да проверим дали работят или не.

6. Тествайте виртуални хостове

Отворете файла /etc/hosts във всеки редактор:

$ sudo vi /etc/hosts

Добавете всичките си виртуални уебсайтове/домейни един по един, както е показано по-долу.

[...]192.168.225.22 ostechnix1.lan192.168.225.22 ostechnix2.lan[...]

Моля, имайте предвид, че ако искате да получите достъп до виртуалните хостове от която и да е отдалечена система, трябва да добавите горните редове във всяка файла /etc/hosts на отдалечената система.

Запазете и затворете файла.

Отворете вашия уеб браузър и го насочете към http://ostechnix1.lan или http://ostechnix2.lan.

Тестова страница на ostechnix1.lan: Тестова страница на ostechnix2.lan:

Поздравления! Вече можете да имате достъп до всичките си уебсайтове. Отсега нататък можете да качвате данните и да ги обслужвате от различни уебсайтове.

Както забелязахте, използвахме един и същ IP адрес (т.е. 192.168.225.22) за хостване на два различни уебсайта (http://ostechnix1.lan и http://ostechnix2.lan). Това е, което наричаме базиран на име виртуален хостинг. Надявам се това да помогне. Ще ви покажа как да конфигурирате базиран на IP виртуален хостинг в следващото ръководство. Дотогава оставайте на линия!

Ресурс: Благодаря, че се отбихте! Приятен ден!!

PREV: Коригиране на PS4 код за грешка NW-31246-6 (Множество решения) – Слабо ...

NEXT: Най-бързите DNS сървъри за Ps4 - 2020 г. [Само най-добрият DNS] - PS4DNS.COM

Popular Articles

Hot Articles

Navigation Lists

Back to Top