Днес ще ви покажем как да настроите Apache Virtual Hosts на CentOS 7. Apache е уеб сървър с отворен код, разработен за модерни операционни системи, включително UNIX и Windows. Това е сигурен, ефективен и разширяем сървър, който предоставя HTTP услуги, синхронизирани с текущите HTTP стандарти.
Много хора го използват, за да хостват своите уебсайтове и приложения. Всъщност, според последните статистически данни, Apache е най-използваният уеб сървър в света, като Windows IIS следва на второ място и на трето руската машина, която е Nginx. За да настроите Apache Virtual Hosts на CentOS 7, просто следвайте нашия урок стъпка по стъпка по-долу.
Функционалността на Apache е страхотна и човек може да намери много добри функции за своя уебсайт или приложение. В този урок ще ви предоставим информация за Apache Virtual Host чрез примери за конфигурация на CentOS 7 VPS.
Виртуалният хост всъщност е единица, която описва отделен домейн в голямата схема на уеб сървъра Apache. Позволява ви да хоствате множество уебсайтове, като използвате един сървър, което е много полезно за хора, които имат повече от един уебсайт.
Всеки домейн, който е конфигуриран с директива за виртуален хост в конфигурацията на Apache, ще насочи посетителя към конкретна директория, където същият уебсайт се хоства на сървъра. Например, може да имате инсталиран WordPress сайт в /var/www/wordpress/, така че когато създавате директивата за виртуален хост, коренът на документа за сайта ще бъде зададен на /var/www/wordpress/, което ще позволи на уеб сървъра да изтеглете данните за уебсайта от съответната конфигурирана директория.
Така че нека сега да се съсредоточим върху нашата задача.
Ще използваме нашия SSD 1 Linux VPS хостинг план за този урок.
Влезте в сървъра си чрез SSH:
# ssh root@server_ipПреди да започнете, въведете командата по-долу, за да проверите дали имате правилната версия на CentOS инсталирана на вашата машина:
# cat /etc/redhat-releaseкоето трябва да ви даде изхода отдолу:
Версия на CentOS Linux 7.2.1511 (Core)Уверете се, че вашият сървър е напълно актуален:
# yum updateНа нашите сървъри CentOS 7 Apache е инсталиран по подразбиране. Ако обаче нямате инсталиран Apache на вашия сървър, можете да го направите с доста проста команда:
# yum инсталирайте httpdВключете Apache и го активирайте да стартира при зареждане:
# systemctl start httpd.service# systemctl enable httpd.serviceПовечето уеб администратори днес използват WordPress като платформа за хостване на техния уебсайт. Сайт на WordPress работи с база данни, така че ако планирате да използвате тази статия за създаване на виртуални хостове за уебсайт/и на WordPress (или друга платформа, която се нуждае от база данни по този въпрос), ще трябва да инсталирате MySQL и PHP на вашия сървър, който завършете така наречения стек LAMP (Linux Apache, MariaDB & PHP). Имаме отлична статия за това как да инсталирате LAMP на CentOS 7, така че може да искате да я проверите тук.
Apache има глобален конфигурационен файл, където всички настройки по подразбиране се съхраняват и прилагат към сървъра. Директивата за виртуален хост може да се съхранява в същия файл httpd.conf по подразбиране или друг, който ще бъде съответен на конфигурирания уебсайт/домейн.
Този глобален конфигурационен файл на Apache в CentOS 7 е /etc/httpd/conf/httpd.conf. Можете да използвате текстов редактор по ваш избор и да проверите съдържанието на този файл, за да получите представа как е конфигуриран Apache.
Конфигурационният файл има редове с коментари преди всяка настройка, които обясняват използването им. Така например, настройката ServerRoot е горната част на дървото на директориите, под което се намират конфигурационните файлове на Apache.
Директивата Listen свързва Apache с конкретен IP адрес и порт. Портът за слушане по подразбиране на Apache е 80.
Стойностите за потребител/група са имената на потребителя/групата, от които HTTPD (apache) работи. В CentOS потребителят и групата са apache/apache, а в Ubuntu/Debian стойностите са www-data/www-data.
Друга важна настройка е DocumentRoot, която е директорията, от която данните ще се сервират на посетителя. Обикновено в повечето дистрибуции коренът на документа по подразбиране за Apache е настроен на /var/www/html/, така че ако поставите данни в /var/www/html/, ще имате достъп до същите тези данни чрез уеб браузър, използвайки вашия сървър IP адрес.
Разгледахме само бегла информация за това, което Apache предлага на своя потребител, така че сега нека създадем нашата първа директива за виртуален хост в Apache. Можете да създадете виртуален хост в главния конфигурационен файл на Apache, но за по-чиста и организирана настройка ще създадем нов отделен файл, в който ще се съхраняват конфигурационните редове. Има настройка (IncludeOptional) в глобалната конфигурация на Apache, чиято включена директория съхранява отделни конфигурационни файлове. Например в CentOS 7 и Apache 2.4 (най-новата версия на Apache към момента на писане на този урок) настройката IncludeOptional е зададена на /etc/httpd/conf.d/, което означава, че всеки *.conf файл, създаден в /etc/httpd /conf.d/ ще се използва от уеб сървъра за обработка на данните.
Затова нека създадем файл your_domain.conf, където ще конфигурираме директива за виртуален хост за вашия домейн. След като влезете във вашия сървър, въведете следната команда:
# nano /etc/httpd/conf.d/your_domain.confПоставете съдържанието по-долу във файла:
ServerAdmin webmaster@your_domain.comDocumentRoot "/var/www/html/your_domain/"ServerName your_domain.comServerAlias www.your_domain.comErrorLog "/var/log/httpd/your_domain.com-error_log"CustomLog "/var/log/httpd/your_domain .com-access_log" combinationDirectoryIndex index.html index.phpOptions FollowSymLinksAllowOverride AllRequire all grantedНека обясним настройките една по една.
– това означава, че тази директива за виртуален хост се свързва с всеки IP адрес на сървъра и на порт 80. ServerAdmin – това е имейл адресът, на който проблемите с уеб сървъра ще се изпращат по имейл. DocumentRoot – директорията, в която ще се съхраняват данните на уебсайта, която в горния случай ще бъде /var/www/html/your_domain/. Разбира се, можете да замените стойността your_domain с всичко, което сметнете за подходящо. ServerName – тази стойност дава името, което сървърът използва за идентифициране на уебсайта. Тук можете да въведете действителния си домейн. ServerAlias – Директивата ServerAlias задава алтернативните имена за хост, например: www.your_domain.com. Може също така да включва заместващи символи, ако е необходимо. и и се използват за ограждане на група от директиви, които ще се прилагат само към наименуваната директория, поддиректориите на тази директория и файловете в съответните директории. Може да се използва всяка директива, която е разрешена в контекст на директория. Directory-path е или пълният път до директория, или низ с заместващи символи, използвайки съвпадение в стил на обвивка на Unix. В нашия случай ние активираме опцията FollowSymLinks, която ще следва символни връзки в директорията /var/www/html/your_domain/. Ние също задаваме директивата AllowOverride на All, което означава, че всяка директива, която има контекста .htaccess, е разрешена във файловете .htaccess. Директивата Require избира кои удостоверени потребители имат достъп до ресурс.[ecko_alert color=”blue”]Заседнали сте някъде? Вземете VPS от нас и ние ще направим всичко това за вас, безплатно![/ecko_alert]
Този вид конфигурация може да се приложи към повечето платформи. Понякога обаче конкретна конфигурация на сайта на WordPress, като тази по-горе, може да не е достатъчна за други видове приложения. Например сайт на Magento ще се нуждае от активиране на повече функции или сайт на Odoo ще се нуждае от конфигуриран обратен прокси.
Едно нещо, което си струва да се спомене (въпреки че повечето потребители го знаят) е, че всички горепосочени настройки за конфигурация трябва да бъдат правилно настроени преди или след създаването на конфигурационния файл на Apache. Например, DocumentRoot трябва да бъде създаден и данните да бъдат хоствани в него.
За да създадете директория, използвайте:
# mkdir /var/www/html/your_domain/След това качете данните, които искате да хоствате в тази директория.
Разрешенията и собствеността върху файловете са друга важна задача за уеб администраторите. В повечето случаи в сървъри без контролен панел, собствеността върху файла и директорията трябва да принадлежи на потребителя и групата, под която работи Apache. В CentOS 7 Apache работи под apache като потребител и apache като група. Така че ще трябва рекурсивно да присвоите тези стойности на файловете и директориите в корена на документа. Командата по-долу прави точно това:
# chown apache:apache -R /var/www/html/your_domain/Тази команда ще присвои apache:apache на всеки файл и директория/поддиректория вътре в /var/www/html/your_domain/.
С тази статия току-що надникнахме в конфигурациите на Apache и виртуални хостове. За повече информация трябва да посетите официалната документация на Apache.
Разбира се, ако използвате една от нашите Apache VPS хостинг услуги, винаги можете да се свържете и да помолите нашите експертни Linux администратори да настроят Apache Virtual Hosts на CentOS 7. Те са достъпни 24×7 и можете да се свържете с тях чрез чат или имейл на support@rosehosting.com
PS. Ако сте харесали тази публикация за това как да настроите Apache Virtual Hosts на CentOS 7, моля, споделете я с приятелите си в социалните мрежи, като използвате бутоните отляво или просто оставете отговор по-долу. Благодаря.
PREV: Обяснени са 5-те различни вида защитни стени
NEXT: Опции за работа в мрежа на Azure Functions | Microsoft Docs