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

Как да конфигурирате виртуален хост Apache

Rsdaa 21/10/2021 2100

В Apache (httpd) виртуалните хостове се използват за хостване на уеб съдържание за множество домейни извън един и същи сървър в зависимост от използвания IP адрес или име на домейн. В зависимост от получената заявка може да се приложи различна конфигурация на виртуален хост, което води до различни настройки и уеб съдържание, обслужвани от един уеб сървър. Например уеб сървър с един IP адрес може да хоства множество имена на домейни като example.com и example.org и много други.

Тук ще разгледаме как да конфигурираме виртуални хостове за Apache 2.4, така че да можем да имаме множество домейни, обслужващи различни уебсайтове въз основа на заявеното.

Учите ли се за вашето RHCE сертифициране? Вижте нашия RHCE видео курс в Udemy, който е с 20% отстъпка, когато използвате кода ROOTUSER.

Примерна конфигурация на виртуален хост на Apache

Конфигурацията на виртуален хост обикновено се поставя във файла /etc/httpd/conf/httpd.conf, а също и в уникални .conf файлове в /etc/httpd/conf .d директория. Добра практика е да създадете нов .conf файл в /etc/httpd/conf.d, ако добавяте множество уебсайтове, които да бъдат хоствани от един и същ уеб сървър, тъй като това поддържа конфигурацията чиста и е по-лесно за управление. В нашия пример ще работим с /etc/httpd/conf.d/example1.conf, който ще бъде за уебсайта www.example.com и /etc/httpd/conf.d/example2.conf, който ще бъде за уебсайта www.example.org.

Първо ще започнем с примерна конфигурация на виртуален хост и след това ще обсъдим какво всъщност прави всеки ред. За допълнителни примери вижте документацията на Apache.

Примерната конфигурация на виртуален хост по-долу е запазена във файла /etc/httpd/conf.d/example1.conf.

Изискване на всички grantedDocumentRoot "/var/www/html/example1"ServerName www.example.comServerAlias ​​example.comServerAdmin [email protected]ErrorLog "/var/log/httpd/error_log_example1"CustomLog "/var/log/httpd/access_log_example1" комбинирано< p>Примерната конфигурация на виртуален хост по-долу е запазена във файла /etc/httpd/conf.d/example2.conf.

Изискване на всички grantedDocumentRoot "/var/www/html/example2"ServerName www.example.orgServerAlias ​​example.orgServerAdmin [email protected]ErrorLog "/var/log/httpd/error_log_example2"CustomLog "/var/log/httpd/access_log_example2" комбинирано< p>В горните примери имаме два блока за конфигурация на виртуален хост. Първият е за www.example.com, докато вторият е за www.example.org. По-долу ще обясним всеки ред за виртуалния хост example1/example.com, тъй като конфигурацията е почти еднаква между двата.

– Това отваря маркера на директорията и се използва за ограждане на група от директиви, които се прилагат към указаната директория. Изискване на всички предоставени – Това е необходимо за предоставяне на достъп, без него регистрационните файлове на Apache ще показват „authz_core:error“ като конфигурация по подразбиране в рамките файлът /etc/http/conf/httpd.conf дефинира директорията на “/” с “Require all denied”. – Това затваря етикета на директорията. – Този маркер за виртуален хост показва, че конфигурацията след него ще се прилага към всеки IP адрес според „*“ на порт 80, вместо това „*“ може да бъде променен до определен IP адрес, който е наличен на сървъра. Портът може също да бъде променен, ако директивата Listen за този порт е дефинирана в главния httpd.conf файл. DocumentRoot „/var/www/example1“ – Основният документ е директорията, където съществува съдържанието, което Apache трябва да обслужва, когато посещаваме името на домейна, в този случай отиването на www.example.com ще ни насочи към файлове в директорията /var/www/example1 на уеб сървъра. Посочената директория трябва да съществува и в идеалния случай да съдържа content.ServerName www.example.com – Това е уникалното име, за което е виртуалният хост, в този случай конфигурационният блок на виртуалния хост е за www.example.com website.ServerAlias ​​пример. com – Алтернативни имена могат да се използват при съпоставяне на заявка и са посочени с псевдоним на сървъра, те ни позволяват да предоставим други псевдоними, базирани на имена, тъй като е разрешено само едно име на сървър на виртуален хост. Администратор на сървъра [имейл защитен] – Това е имейл адрес, който се предоставя в съобщения за грешки, което позволява на потребителите да се свържат с уеб администратора на уеб сървъра. ErrorLog „/var/log/httpd/error_log_example1“ – Това е файлът, където се съхраняват регистрационни файлове за грешки, които са свързани с този виртуален хост, които са полезни при отстраняване на проблеми .CustomLog „/var/log/httpd/access_log_example1“ комбинирано – Това е мястото, където се съхраняват регистрационни файлове за достъп, например когато клиент преглежда уеб страница, заявките за достъп ще се регистрират тук. – Това е затварящият таг за блока на виртуалния хост, указващ края на конфигурацията за конкретния виртуален хост.

Ако липсва някаква конфигурация във виртуален хост, настройките по подразбиране, посочени в главния /etc/httpd/conf/ Вместо това ще се използва файл httpd.conf.

Вторият виртуален хост блок във файла example2.conf е почти същият, с изключение на това, че се грижи за заявките за www.example.org и example.org, обслужващи съдържанието в /var/www/html/example2. Грешките се регистрират в /var/log/httpd/error_log_example2, а заявките за достъп се регистрират в /var/log/httpd/access_log_example2.

Синтаксисът на нашите два .conf файла може да бъде тестван с командата „apachectl configtest“, както е показано по-долу. В този случай основните директории на документа все още не са създадени, така че получаваме предупреждение и трябва да ги създадем.

[[email protected] ~]# apachectl configtestAH00112: Предупреждение: DocumentRoot [/var/www/html/example1] не съществуваAH00112: Предупреждение: DocumentRoot [/var/www/html/example2] не съществува Синтаксис OK

Директориите може да се създаде с mkdir, както е показано по-долу.

mkdir /var/www/html/example1mkdir /var/www/html/example2

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

[[email protected] ~]# cat /var/www/html/example1/index.htmlexample.com уебсайт[[email protected] ~]# cat /var/www/html/example2/index.htmlexample.org уебсайт

Преди да тестваме нашата конфигурация на виртуален хост, всякакви промени в конфигурационните файлове на Apache, като например модификация на виртуални хостове, ще изискват httpd услугата да бъде рестартирана или презаредена, за да вземе промените в конфигурацията. Apache може да се презареди, за да се използват промените в конфигурацията с „systemctl reload httpd“, за допълнителна информация вижте нашето ръководство за управление на услугата.

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

След като конфигурацията на виртуалния хост бъде въведена и Apache презареден, ще трябва да се създадат съответните DNS записи, така че домейните да се преобразуват в уеб сървъра. Като алтернатива можете да тествате, като промените вашия hosts файл. В този пример можем да модифицираме файла /etc/hosts и да добавим следния запис.

127.0.0.1 example.com www.example.com example.org www.example.org

Това ще накара тези домейни да се преобразуват в localhost, сега можем да преглеждаме съдържанието и да потвърдим, че нашите виртуални хостове работят правилно. В този случай ще използваме командата curl, за да прегледаме съдържанието на всеки уебсайт.

[[email protected] ~]# curl example.comexample.com website[[email protected] ~]# curl example.orgexample.org website

Това потвърждава, че правилните index.html страници в /var/www/html/ example1 и /var/www/html/example2 се извличат успешно за всеки домейн, както е дефинирано в конфигурацията на виртуалния хост.

Допълнителна информация

Ако се затрудните или имате проблеми със запомнянето на нещо от това, запомнете пакета httpd-manual, който може да бъде инсталиран и прегледан на http://localhost/manual.

От главната страница просто изберете Виртуални хостове за помощ по тази тема.

Резюме

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

Тази публикация е част от нашата поредица учебни наръчници за изпит за сертифициран инженер от Red Hat (RHCE). За повече публикации и информация, свързани с RHCE, вижте нашето пълно учебно ръководство за RHCE.

Свързани


PREV: [Решен] Не може да се свърже с MySql сървър на localhost (10061) (Вижте темата) * Форум на общността на Apache OpenOffice

NEXT: Дефект #11685: Не може да се свърже с MySQL сървър на „localhost ...

Popular Articles

Hot Articles

Navigation Lists

Back to Top