Виртуальный хостинг - это метод размещения нескольких веб-сайтов на одном сервере. Существует два типа виртуального хостинга: виртуальный хостинг на основе имени и виртуальный хостинг на основе 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.
Требования
- ОС: Ubuntu server 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, вашему компьютеру с Linux должно быть назначено несколько IP-адресов. Настройка нескольких IP-адресов на одном сетевом интерфейсе называется псевдонимом IP. IP-псевдонимы очень полезны, если у вас только одна сетевая карта.
Для этого вам необходимо отредактировать файл "/ etc / network / interfaces".
sudonano/etc/network/interfaces
Добавьте следующие строки:
auto eth0iface eth0 inet staticaddress 192.168.1.227netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 8.8.8.8 auto eth0: 1 iface eth0: 1 inet staticaddress 192.168.1.228netmask 255.255.255.0
Сохраните и закройте файл, затем перезапустите сетевую службу, чтобы изменения вступили в силу.
sudo/etc/init.d/networking restartsudoifup 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".
sudonano/etc/apache2/ports.conf
Добавьте следующую строку:
Listen 192.168.1.227:80Listen 192.168.1.228:80Listen 192.168.1.228:8080
Сохраните и закройте файл, затем перезапустите Apache, чтобы изменения вступили в силу.
sudo/etc/init.d/apache2 restart
Создать виртуальные каталоги
Во-первых, вам нужно создать структуру каталогов, в которой будут храниться веб-страницы. Этот каталог известен как DocumentRoot для домена.
Создайте три каталога для веб-сайтов "www.ipvhost1.com", "www.ipvhost2.com" и "www.portvhost.com" в каталоге DocumentRoot по умолчанию Apache.
sudomkdir-p/var/www/html/www.ipvhost1.comsudomkdir-p/var/www/html/www.ipvhost2.comsudomkdir-p/var/www/html/www.portvhost.com
Создание тестовых веб-страниц для каждого виртуального хоста
Создайте файл index.html для каждого веб-сайта, который определяет конкретные IP-адреса и порт.
Создайте файл index.html для виртуального хоста "www.ipvhost1.com".
sudonano/var/www/html/www.ipvhost1.com/index.html
Добавьте следующий контент.
www.ipvhost1.com Виртуальный хост ipvhost1.com ip работает!
Сохраните и закройте файл, когда закончите.
Создайте файл index.html для виртуального хоста www.ipvhost2.com.
sudonano/var/www/html/www.ipvhost2.com/index.html
Добавьте следующий контент.
www.ipvhost2.com Виртуальный хост ipvhost2.com ip работает!
Сохраните и закройте файл, когда закончите.
Создайте файл index.html для виртуального хоста www.portvhost.com.
sudonano/var/www/html/www.portvhost.com/index.html
Добавьте следующий контент.
www.portvhost.com Виртуальный хост порта portvhost.com работает!
Сохраните и закройте файл, когда закончите.
Настройка прав собственности и разрешений
По умолчанию служба Apache работает в Ubuntu как пользователь "www-data". Вы должны изменить владельца этих трех виртуальных каталогов на "www-data", чтобы Apache мог читать и записывать данные.
Для этого запустите:
sudochown-R www-data:www-data /var/www/html/www.ipvhost1.comsudochown-R www-data:www-data /var/www/html/www.ipvhost2.comsudochown-R www-data:www-data /var/www/html/www.portvhost.com
Кроме того, вам необходимо убедиться, что корневой веб-каталог Apache (/ var / www / html) доступен для чтения, чтобы каждый мог читать из него файлы.
sudochmod-R755/var/www/html
Создать файлы виртуального хоста
По умолчанию Apache поставляется с файлом виртуального хоста по умолчанию под названием "000-default.conf". Сначала вам нужно отключить этот файл виртуального хоста.
Для этого выполните следующую команду.
sudo a2dissite 000-default.conf
Следующим шагом является создание файла конфигурации виртуального хоста для каждого веб-сайта. Имя каждого файла конфигурации должно заканчиваться на ".conf".
Создайте файл виртуального хоста для веб-сайта "www.ipvhost1.com".
sudonano/etc/apache2/sites-available/www.ipvhost1.com.conf
Добавьте следующий контент.
VirtualHost 192.168.1.227:80> ServerAdmin admin@ipvhost1.comServerName www.ipvhost1.comDocumentRoot /var/www/html/www.ipvhost1.com ErrorLog ${APACHE_LOG_DIR}/www.ipvhost1.com_error.logCustomLog ${APACHE_LOG_DIR}/www.ipvhost1.com_access.log combined VirtualHost>
Сохраните и закройте файл.
Создайте файл виртуального хоста для веб-сайта "www.ipvhost2.com".
sudonano/etc/apache2/sites-available/www.ipvhost2.com.conf
Добавьте следующий контент.
VirtualHost 192.168.1.228:80> ServerAdmin admin@ipvhost2.comServerName www.ipvhost2.comDocumentRoot /var/www/html/www.ipvhost2.com ErrorLog ${APACHE_LOG_DIR}/www.ipvhost2.com_error.logCustomLog ${APACHE_LOG_DIR}/www.ipvhost2.com_access.log combined VirtualHost>
Сохраните и закройте файл.
Создайте файл виртуального хоста для веб-сайта www.portvhost.com.
sudonano/etc/apache2/sites-available/www.portvhost.com.conf
Добавьте следующий контент.
VirtualHost 192.168.1.228:8080> ServerAdmin admin@portvhost.comServerName www.portvhost.comDocumentRoot /var/www/html/www.portvhost.com ErrorLog ${APACHE_LOG_DIR}/www.portvhost.com_error.logCustomLog ${APACHE_LOG_DIR}/www.portvhost.com_access.log combined VirtualHost>
Сохраните и закройте файл.
После создания файлов виртуальных хостов вам необходимо включить виртуальные хосты.
Вы можете сделать это, запустив.
sudo a2ensite www.ipvhost1.com.confsudo a2ensite www.ipvhost2.com.confsudo a2ensite www.portvhost.com.conf
Наконец, перезапустите службу Apache.
sudo/etc/init.d/apache2 restart
Тестирование виртуальных хостов
Пришло время протестировать виртуальный IP-адрес. На компьютере откройте веб-браузер и перейдите к URL-адресам "http://192.168.1.227:80" и "http://192.168.1.228:80". Вы должны увидеть образцы демонстрационных страниц для виртуального хостинга на основе IP, которые выглядят следующим образом:
Аналогичным образом, чтобы протестировать виртуальный хост порта, откройте свой веб-браузер и перейдите по URL-адресу "http://192.168.1.228:8080". Вы должны увидеть образец демонстрационной страницы виртуального хостинга на основе порта, который выглядит следующим образом:
Заключение
В этом посте я показал пошаговую процедуру создания и включения виртуального хоста на основе IP и портов на веб-сервере Apache. Вы можете легко настроить несколько доменов на одном сервере.