Тази статия е част от серията Ръководство за Apache Server:

  • Осигуряване на Apache на Ubuntu - Част 1
  • Осигуряване на Apache на Ubuntu - Част 2
  • Оптимизиране на ефективността на Apache - Част 1
  • Оптимизиране на ефективността на Apache - Част 2
  • Настройване на Apache на
  • Настройване на IP и Port-базирани Virtualhost в Apache
  • Как да настроите паролата за защита на уеб директорията в Apache
  • Настройване на Apache Server със SSL поддръжка на Ubuntu
  • Създаване на Fail2ban за защита на Apache от DDOS атака
  • Как да настроите Webdata с Apache на Ubuntu
  • Следете уеб сървъра на Apache, използвайки Mod_status
  • Как да защитите срещу DDoS с Mod_evasive на Apache Server

Виртуалният хостинг е метод за хостване на няколко уебсайта на един сървър. Има два вида виртуален хостинг: имена базирани виртуален хостинг и IP-базирани виртуален хостинг. IP-базираният виртуален хостинг е техника за прилагане на различни директиви въз основа на IP адреса и пристанището, на което е получена заявка. Можете да зададете отделен IP адрес за всеки домейн на един сървър, като използвате IP-базиран виртуален хостинг. Предимно това се използва за хостване на различни сайтове на различни пристанища или IP адреси.

Тук ще бъде домакин на "www.ipvhost1.com" на IP "192.168.1.227", "www.ipvhost2.com" на IP "192.168.1.228" и "www.portvhost.com" на IP "192.168.1.228" с порт 8080.

Изисквания

  • OS: Ubuntu сървър 14.04 с инсталиран Apache
  • IP адрес1: 192.168.1.227
  • IP адрес2: 192.168.1.228
  • Домейн: www.ipvhost1.com
  • Домейн: www.ipvhost2.com
  • Домейн: www.portvhost.com

Създаване на няколко IP адреса на един мрежов интерфейс

За да настроите IP-базиран виртуален хостинг, трябва да имате повече от един IP адрес, зададени на вашата Linux машина. Настройването на няколко IP адреса в един мрежов интерфейс се нарича IP aliasing. IP aliasing е много полезно, ако имате само една мрежова карта за интерфейс.

За да направите това, трябва да редактирате файла "/ etc / network / interfaces".

 sudo nano / etc / мрежа / интерфейси 

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

 auto eth0 iface eth0 inet статичен адрес 192.168.1.227 мрежова маска 255.255.255.0 шлюз 192.168.1.1 dns-nameservers 8.8.8.8 auto eth0: 1 iface eth0: 1 inet статичен адрес 192.168.1.228 мрежова маска 255.255.255.0 

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

 sudo /etc/init.d/networking рестартирайте sudo ifup eth0: 1 

Настройване на няколко копия на Apache

По подразбиране Apache слуша на порт 80. За портов виртуален хостинг трябва да кажете на Apache да слуша IP адресите "192.168.1.227" и "192.168.1.228" на порт 80 и IP "192.168.1.228" на порт 8080.

За да настроите няколко порта, трябва да редактирате "/etc/apache2/ports.conf".

 sudo nano /etc/apache2/ports.conf 

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

 Слушай 192.168.1.227:80 Слушай 192.168.1.228:80 Слушай 192.168.1.228:8080 

Запазете и затворете файла, след което рестартирайте Apache, за да влезе в сила тези промени.

 sudo /etc/init.d/apache2 рестартирайте 

Създаване на виртуални директории

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

Създайте три директории за уеб сайтове "www.ipvhost1.com", "www.ipvhost2.com" и "www.portvhost.com" под директория DocRoot по подразбиране на Apache.

 sudo mkdir -p /var/www/html/www.ipvhost1.com sudo mkdir -p /var/www/html/www.ipvhost2.com sudo mkdir -p /var/www/html/www.portvhost.com 

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

Създайте файл "index.html" за всеки уебсайт, който идентифицира конкретни IP адреси и Порт.

Създайте файл index.html за виртуалния хост "www.ipvhost1.com".

 sudo nano /var/www/html/www.ipvhost1.com/index.html 

Добавете следното съдържание.

 www.ipvhost1.com 

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

Създайте файл "index.html" за виртуалния хост "www.ipvhost2.com".

 sudo nano /var/www/html/www.ipvhost2.com/index.html 

Добавете следното съдържание.

 www.ipvhost2.com 

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

Създайте файл "index.html" за виртуалния хост "www.portvhost.com".

 sudo nano /var/www/html/www.portvhost.com/index.html 

Добавете следното съдържание.

 www.portvhost.com 

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

Създаване на собственост и разрешения

По подразбиране услугата Apache работи като потребител на "www-данни" в Ubuntu. Трябва да промените собствеността на тези три виртуални директории върху "www-data", така че Apache да може да чете и записва данни.

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

 sudo chown -R www-данни: www-данни /var/www/html/www.ipvhost1.com sudo chown -R www-данни: www-данни /var/www/html/www.ipvhost2.com sudo chown -R www-данни: www-данни /var/www/html/www.portvhost.com 

Също така трябва да се уверите, че директорията на Apache в уеб сървъра (/ var / www / html) е четима, така че всеки да може да чете файлове от него.

 sudo chmod-R 755 / var / www / html 

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

По подразбиране Apache идва с по подразбиране файл за виртуален хост, наречен "000-default.conf". Трябва първо да деактивирате този виртуален хост.

За да направите това, изпълнете следната команда.

 sudo a2dissite 000-default.conf 

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

Създайте виртуален хост файл за уебсайт "www.ipvhost1.com".

 sudo nano /etc/apache2/sites-available/www.ipvhost1.com.conf 

Добавете следното съдържание.

 ServerAdmin [email protected] Име на сървъра www.ipvhost1.com DocumentRoot /var/www/html/www.ipvhost1.com ErrorLog $ {APACHE_LOG_DIR} /www.ipvhost1.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.ipvhost1.com_access. дневник комбиниран 

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

Създайте виртуален хост файл за уеб сайта "www.ipvhost2.com".

 sudo nano /etc/apache2/sites-available/www.ipvhost2.com.conf 

Добавете следното съдържание.

 ServerAdmin [email protected] Име на сървъра www.ipvhost2.com DocumentRoot /var/www/html/www.ipvhost2.com ErrorLog $ {APACHE_LOG_DIR} /www.ipvhost2.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.ipvhost2.com_access. дневник комбиниран 

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

Създайте виртуален хост файл за уебсайт "www.portvhost.com".

 sudo nano /etc/apache2/sites-available/www.portvhost.com.conf 

Добавете следното съдържание.

 ServerAdmin [email protected] Име на сървъра www.portvhost.com DocumentRoot /var/www/html/www.portvhost.com ErrorLog $ {APACHE_LOG_DIR} /www.portvhost.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.portvhost.com_access. дневник комбиниран 

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

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

Можете да направите това, като стартирате.

 sudo a2ensite www.ipvhost1.com.conf sudo a2ensite www.ipvhost2.com.conf sudo a2ensite www.portvhost.com.conf 

И накрая, рестартирайте услугата Apache.

 sudo /etc/init.d/apache2 рестартирайте 

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

Сега е време да тествате IP Virtualhost. На компютър отворете уеб браузъра си и отворете URL адресите "http://192.168.1.227:80" и "http://192.168.1.228:80". Трябва да видите примерни демонстрационни страници за IP-базиран виртуален хостинг, които изглеждат така:

По същия начин, за да тествате Port Virtualhost, отворете уеб браузъра си и отворете URL адреса "http://192.168.1.228:8080". Трябва да видите примерна демонстрационна страница за пристанищен виртуален хостинг, която изглежда така:

заключение

В тази публикация показах стъпка по стъпка процедура за създаване и активиране на IP-базиран и порт-базиран виртуален хост на уеб сървър на Apache. Можете лесно да настроите много домейни на същия сървър.