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

Как да настроите виртуални хостове Apache на CentOS 7 | DigitalOcean

Rsdaa 25/10/2021 1764

Състояние: Отхвърлено

Причина: Тази статия не се поддържа активно и има налична нова версия. Вижте вместо това: Как да инсталирате уеб сървъра Apache на CentOS 7

Въведение

Уеб сървърът Apache е най-популярният начин за обслужване на уеб съдържание в Интернет. Той обслужва повече от половината от всички активни уебсайтове в Интернет и е изключително мощен и гъвкав.

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

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

В това ръководство ще разгледаме как да настроите виртуални хостове на Apache на CentOS 7 VPS. По време на този процес ще научите как да предоставяте различно съдържание на различни посетители в зависимост от това кои домейни заявяват.

Предварителни условия

Преди да започнете с това ръководство, има няколко стъпки, които първо трябва да изпълните.

Ще ви е необходим достъп до сървър CentOS 7 с не-root потребител, който има sudo привилегии. Ако все още не сте конфигурирали това, можете да преминете през началното ръководство за настройка на сървъра CentOS 7, за да създадете този акаунт.

Ще трябва също да имате инсталиран Apache, за да конфигурирате виртуални хостове за него. Ако все още не сте го направили, можете да използвате yum, за да инсталирате Apache през софтуерните хранилища по подразбиране на CentOS:

sudo yum -y install httpd

След това активирайте Apache като услуга на CentOS, така че да стартира автоматично след рестартиране:

sudo systemctl enable httpd.service

След като тези стъпки са завършени, влезте като не-root потребителски акаунт чрез SSH и продължете с урока.

Забележка: Примерната конфигурация в това ръководство ще направи един виртуален хост за example.com и друг за example2.com. Те ще бъдат посочени в цялото ръководство, но трябва да замените вашите собствени домейни или стойности, докато следвате. За да научите как да настроите вашите имена на домейни с DigitalOcean, следвайте тази връзка.

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

Първа стъпка — Създайте структура на директория

Първо, трябва да създадем структура на директория, която да съдържа данните от сайта, които да служат на посетителите.

Нашият корен на документа (директорията от най-високо ниво, която Apache разглежда, за да намери съдържание за обслужване) ще бъде настроен на отделни директории в директорията /var/www. Тук ще създадем директория за всеки от виртуалните хостове, които планираме да направим.

Във всяка от тези директории ще създадем директория public_html, която ще съдържа действителните ни файлове. Това ни дава известна гъвкавост в нашия хостинг.

Можем да създадем тези директории с помощта на командата mkdir (с флаг -p, който ни позволява да създадем папка с вложена папка вътре):

sudo mkdir -p /var/www/example.com/public_htmlsudo mkdir -p /var/www/example2.com/public_html

Не забравяйте, че частите в червено представляват имената на домейни, които искаме да обслужваме от нашия VPS.

Стъпка втора — Предоставяне на разрешения

Вече имаме структурата на директорията за нашите файлове, но те са собственост на нашия root потребител. Ако искаме редовният ни потребител да може да променя файлове в нашите уеб директории, можем да променим собствеността с chown:

sudo chown -R $USER:$USER /var/www/example.com/public_htmlsudo chown -R $USER:$USER /var/www/example2.com/public_html

Променливата $USER ще приеме стойността на потребител, под който сте влезли в момента, когато подадете командата. Правейки това, нашият редовен потребител вече притежава поддиректориите public_html, където ще съхраняваме нашето съдържание.

Трябва също така да променим малко нашите разрешения, за да гарантираме, че достъпът за четене е разрешен до общата уеб директория и всички файлове и папки вътре, така че страниците да могат да се обслужват правилно:

sudo chmod -R 755 /var/www

Вашият уеб сървър вече трябва да има разрешенията, от които се нуждае, за да обслужва съдържание, а вашият потребител трябва да може да създава съдържание в съответните папки.

Стъпка трета — Създаване на демонстрационни страници за всеки виртуален хост

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

Тъй като това е само за демонстрация и тестване, нашите страници ще бъдат много прости. Ние просто ще направим страница index.html за всеки сайт, който идентифицира този конкретен домейн.

Да започнем с example.com. Можем да отворим файл index.html в нашия редактор, като напишем:

nano /var/www/example.com/public_html/index.html

В този файл създайте прост HTML документ, който показва сайта, към който е свързана страницата. За това ръководство файлът за нашия първи домейн ще изглежда така:

Добре дошли в Example.com!

Успех! Виртуалният хост example.com работи!

Запазете и затворете файла, когато приключите.

Можем да копираме този файл, за да го използваме като шаблон за index.html на нашия втори сайт, като напишем:

cp /var/www/example.com/public_html/index.html /var/www/example2.com/public_html/index.html

Сега нека отворим този файл и да променим съответната информация:

nano /var/www/example2.com/public_html/index.htmlДобре дошли в Example2.com!

Успех! Виртуалният хост example2.com работи!

Запазете и затворете и този файл. Вече имате необходимите страници за тестване на конфигурацията на виртуалния хост.

Стъпка четири — Създаване на нови виртуални хост файлове

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

За да започнем, ще трябва да настроим директорията, в която ще се съхраняват нашите виртуални хостове, както и директорията, която казва на Apache, че виртуален хост е готов да обслужва посетители. Директорията sites-available ще съхранява всички наши виртуални хост файлове, докато sites-enabled директорията ще съдържа символни връзки към виртуални хостове, които искаме да публикуваме. Можем да създадем и двете директории, като напишем:

sudo mkdir /etc/httpd/sites-availablesudo mkdir /etc/httpd/sites-enabled

Забележка: Това оформление на директория е въведено от сътрудници на Debian, но ние го включваме тук за допълнителна гъвкавост при управлението на нашите виртуални хостове (тъй като е по-лесно временно активиране и деактивиране на виртуални хостове по този начин).

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

sudo nano /etc/httpd/conf/httpd.conf

Добавете този ред в края на файла:

IncludeOptional sites-enabled/*.conf

Запазете и затворете файла, когато приключите с добавянето на този ред. Вече сме готови да създадем нашия първи виртуален хост файл.

Създайте първия файл с виртуален хост

Започнете, като отворите новия файл във вашия редактор с root права:

sudo nano /etc/httpd/sites-available/example.com.conf

Забележка: Поради конфигурациите, които очертахме, всички виртуални хост файлове трябва да завършват на .conf.

Първо, започнете, като направите двойка тагове, обозначаващи съдържанието като виртуален хост, който слуша на порт 80 (HTTP порта по подразбиране):

След това ще декларираме името на основния сървър, www.example.com. Също така ще създадем псевдоним на сървъра, който да сочи към example.com, така че заявките за www.example.com и example.com да доставят едно и също съдържание:

ServerName www.example.comServerAlias ​​example.com

Забележка: За да може www версията на домейна да работи правилно, DNS конфигурацията на домейна ще се нуждае от A запис или CNAME, който насочва www заявките към IP адреса на сървъра. Запис със заместващ знак (*) също ще работи. За да научите повече за DNS записите, разгледайте нашето ръководство за настройка на име на хост.

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

ServerName www.example.comServerAlias ​​example.comDocumentRoot /var/www/example.com/public_htmlErrorLog /var/www/example.com/error.logCustomLog /var/www/example.com/requests.log комбинирано

Когато сте приключите с изписването на тези елементи, можете да запишете и затворите файла.

Копирайте първия виртуален хост и персонализирайте за допълнителни домейни

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

Започнете, като го копирате с cp:

sudo cp /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-available/example2.com.conf

Отворете новия файл с root права във вашия текстов редактор:

sudo nano /etc/httpd/sites-available/example2.com.conf

Сега трябва да модифицирате всички части от информацията, за да посочите вашия втори домейн. Когато приключите, вашият втори виртуален хост файл може да изглежда по следния начин:

ServerName www.example2.comDocumentRoot /var/www/example2.com/public_htmlServerAlias ​​example2.comErrorLog /var/www/example2.com/error.logCustomLog /var/www/example2.com/requests.log комбинирано

Когато сте приключите с тези промени, можете да запишете и затворите файла.

Стъпка пета — Активиране на новите виртуални хост файлове

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

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.confsudo ln -s /etc/httpd/sites-available/example2.com.conf / etc/httpd/sites-enabled/example2.com.conf

Когато приключите, рестартирайте Apache, за да влязат в сила тези промени:

sudo apachectl restart

Стъпка шест — Настройте файл с локални хостове (по избор)

Ако сте използвали примерни домейни вместо действителни домейни, за да тествате тази процедура, все още можете да тествате функционалността на вашите виртуални хостове чрез временно модифициране на файла hosts на вашия локален компютър. Това ще прихване всички заявки за домейните, които сте конфигурирали, и ще ги насочи към вашия VPS сървър, точно както би направила DNS системата, ако използвате регистрирани домейни. Това обаче ще работи само от вашия компютър и е просто полезно за тестови цели.

Забележка: Уверете се, че работите на вашия локален компютър за тези стъпки, а не на вашия VPS сървър. Ще ви трябва достъп до администраторските идентификационни данни за този компютър.

Ако сте на компютър с Mac или Linux, редактирайте вашия файл с локални хостове с администраторски привилегии, като напишете:

sudo nano /etc/hosts

Ако сте на машина с Windows, можете да намерите инструкции за промяна на файла с хостове тук.

Подробностите, които трябва да добавите, са публичният IP адрес на вашия VPS, последван от домейна, който искате да използвате, за да достигнете до този VPS:

127.0.0.1 localhost127.0.1.1 guest-desktopserver_ip_address example.comserver_ip_address example2.com

Това ще насочи всички заявки за example.com и example2.com на нашия локален компютър и ще ги изпрати до нашия сървър на server_ip_address.

Стъпка седма — Тествайте резултатите си

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

http://example.com

Трябва да видите страница, която изглежда така:

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

Ако всички сайтове, които сте конфигурирали, работят добре, значи успешно сте конфигурирали вашите нови виртуални хостове на Apache на същия CentOS сървър.

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

Заключение

В този момент вече трябва да имате един сървър CentOS 7, който обработва множество сайтове с отделни домейни. Можете да разширите този процес, като следвате стъпките, описани по-горе, за да създадете допълнителни виртуални хостове по-късно. Няма софтуерно ограничение за броя имена на домейни, които Apache може да обработи, така че не се колебайте да направите толкова, колкото вашият сървър може да обработи.


PREV: DNS сървърът не отговаря на PS4 Fix – приложимо решение (2021)

NEXT: Коригиране на грешка PS4 NW-31247-7 – Множество решения – Слаба Wi-Fi ...

Popular Articles

Hot Articles

Navigation Lists

Back to Top