Виртуалният хостинг е метод за хостване на множество уебсайтове на една машина. Има два типа виртуален хостинг: базиран на имена виртуален хостинг и базиран на IP виртуален хостинг. Базираният на IP виртуален хостинг е техника за прилагане на различни директиви въз основа на IP адреса и порта, на който е получена заявка. Можете да зададете отделен IP за всеки уебсайт на един сървър, като използвате базиран на IP виртуален хостинг. Това се използва главно за хостване на различни уебсайтове на различни портове или IP адреси.
В тази статия ще създаваме:
Пример 1: IP-базиран хостингURL: www.ip-vhost.comIP адрес: 192.168.1.42Порт: 80Пример 2: Порт-базиран хостингURL: www.port-vhost.com IP адрес: 192.168.1.43`Порт: 8080За да настроите базиран на IP виртуален хостинг, трябва да имате повече от един IP адрес, присвоен на вашия сървър. Настройването на множество IP адреси на един мрежов интерфейс се нарича „IP псевдоним“. Много е полезно, особено ако вашият сървър има само една мрежова интерфейсна карта (NIC).
За да настроите множество IP адреси, трябва да редактирате файла ifcfg-eth0:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0Добавете/редактирайте следните редове:
DEVICE="eth0"ONBOOT=yesBOOTPROTO=staticIPADDR0=192.168.1.42IPADDR1=192.168.1.43NETMASK=255.255.255.0GATEWAY=192.168.1.1DNS1=8.8.8.8Запазете и затворете файла, когато приключите. След това рестартирайте мрежовата услуга, за да влязат в сила тези промени.
sudo service network restartПо подразбиране Apache слуша за входящи връзки на порт 80. За базиран на порт виртуален хостинг трябва да кажете на Apache да слуша за IP адрес 192.168. 1.42 на порт 80 и за IP адрес 192.168.1.43 на порт 8080.
За да настроите множество портове, трябва да редактирате файла httpd.conf:
sudo nano /etc/httpd/conf/httpd.confДобавете/редактирайте следните редове:
Listen 192.168.1.42:80Listen 192.168.1.43:8080Запазете и затворете файла, след което рестартирайте Apache, за да влязат в сила тези промени.
sudo systemctl restart httpdПърво, трябва да създадете структура на директория, която да съдържа уеб страниците. Тази директория е известна като "корен на документа" за домейна.
В CentOS 7 главната директория на документа на Apache по подразбиране е /var/www/html/.
Сега създайте две директории за уебсайтове www.ip-vhost.com и www.port-vhost.com в главната директория на документа на Apache по подразбиране:
sudo mkdir -p /var/www/html/www.ip-vhost.comsudo mkdir -p /var/www/html/www.port-vhost.comСега трябва да създадете файл index.html за всеки уебсайт, който ще идентифицира този конкретен домейн.
Нека създадем файл index.html за ip виртуалния хост www.ip-vhost.com.
sudo nano /var/www/html/www.ip-vhost.com/index.htmlДобавете следното съдържание.
www.ip-vhost.comВиртуалният хост ip-vhost.com работи!
Запазете и затворете файла, когато приключите.
По подобен начин създайте файл index.html за виртуалния хост www.port-vhost.com.
sudo nano /var/www/html/www.port-vhost.com/index.htmlДобавете следното съдържание.
www.port-vhost.comВиртуалният хост port-vhost.com работи!
Запазете и затворете и този файл. Сега имате страниците за тестване на конфигурацията на виртуалния хост.
В CentOS 7 по подразбиране услугата Apache работи като потребителски apache. Трябва да промените собствеността на тези две виртуални директории на apache, така че Apache да може да чете и записва данни.
Можете да промените собствеността с командата chown.
sudo chown -R apache:apache /var/www/html/www.ip-vhost.comsudo chown -R apache:apache /var/www/html/www.port-vhost.comТрябва също да направите Apache документ root /var/www/html директория четима от света, така че всеки да може да чете файлове от тази директория.
sudo chmod -R 755 /var/www/htmlСега вашият уеб сървър има разрешенията, от които се нуждае, за да обслужва съдържание.
Следващата стъпка е да създадете конфигурационен файл за виртуален хост за всеки уебсайт. Името на всеки конфигурационен файл трябва да завършва с .conf.
Нека създадем виртуален хост файл за уебсайт www.ip-vhost.com.
sudo nano /etc/httpd/conf.d/ip-vhost.com.confДобавете следното съдържание.
Име на сървър www.ip-vhost.comServerAlias ip-vhost.comDocumentRoot /var/www/html/www.ip-vhost.comErrorLog /var/www/html/www.ip-vhost.com/error.logCustomLog /var/www/ html/www.ip-vhost.com/access.log комбинираноЗапазете и затворете файла, когато приключите.
По подобен начин създайте виртуален хост файл за уебсайт www.port-vhost.com.
sudo nano /etc/httpd/conf.d/port-vhost.com.confДобавете следното съдържание.
Име на сървър www.port-vhost.comServerAlias port-vhost.comDocumentRoot /var/www/html/www.port-vhost.comErrorLog /var/www/html/www.port-vhost.com/error.logCustomLog /var/www/ html/www.port-vhost.com/access.log комбинираноКогато сте готови, добра идея е да проверите синтаксиса на конфигурацията. Можете да проверите синтаксиса на файловете със следната команда:
sudo apachectl configtestСлед като проверката на синтаксиса приключи, рестартирайте Apache, за да влязат в сила тези промени.
sudo systemctl restart httpdСега трябва да разрешите Apache порт 80 и 8080 с помощта на FirewallD.
Можете да направите това, като изпълните следните команди:
sudo firewall-cmd --permanent --add-port=80/tcpsudo firewall-cmd --permanent --add-port=8080/tcpСега презаредете услугата за защитна стена, за да влязат в сила промените.
sudo firewall-cmd --reloadСега на настолен Linux компютър отворете вашия уеб браузър и отидете на URL адресите http://192.168.1.42:80 и http:/ /192.168.1.43:8080. Трябва да видите примерни страници, които изглеждат така:
Примерна страница www.ip-vhost.com:
Демо страница www.port-vhost.com:
PREV: Как да заобиколите и заобиколите бан в Discord - Alphr
NEXT: Глава 7 Мрежова информационна услуга (NIS) (Общ преглед ...