- Apache поддерживает два типа виртуального хоста
- Преимущество:
- 1a) Создание виртуальных каталогов
- 2а) Изменить право собственности
- 3a) Настройка правильного разрешения для каталога www
- 4a) Создание образца страницы для сайтов
- 5a) Создание файлов виртуальных хостов
- 6a) Изменить конфигурацию виртуального хоста
- 7a) Включение / отключение виртуальных хостов
- 8a) Запустите configtest.
- 9a) Перезагрузка Apache
- 10a) Перезапустите Apache
- 11a) Добавление имени домена в файл hosts.
- 12a) Очистить локальный кеш DNS
- 13a) Доступ к недавно настроенному веб-сайту
- 2) Виртуальные хосты на основе IP
- Как добавить виртуальный хост на основе IP в apache
- 2a) Доступ к недавно настроенному веб-сайту
Virtualhost Размещая несколько доменов на одном сервере, называемом virtualhost, вы можете разместить N виртуального хоста на одном веб-сервере Apache. Посмотрите на нижеприведенную биграмму: там ясно сказано, что мы можем запустить N виртуального хоста в одном веб-сервере Apache. Убедитесь, что в вашей системе установлены LAMP в Ubuntu, LAMP в Linux Mint и LAMP в Debian.
Apache поддерживает два типа виртуального хоста
- Виртуальные хосты на основе имен (все сайты используют один IP-адрес)
- Виртуальные хосты на основе IP (каждый веб-сайт имеет свой IP-адрес)
1) Виртуальный хост на основе имени.
В виртуальном хосте на основе имени каждый веб-сайт использует один IP-адрес. Как его работа? Для виртуального хоста на основе имени вам нужно правильно настроить DNS, чтобы сопоставить домен с общим IP. Пример среды размещения: всякий раз, когда вы покупаете домен и хостинг, они будут просить вас указать домен на сервере провайдера хостинга (например, они предоставят два сервера имен для вашего домена для сопоставления их сервера)
Преимущество:
- Легко управлять
- Простота настройки по сравнению с IP
- Подходит для среды с общим и посредническим хостингом
1) Как добавить виртуальный хост на основе имени в Apache
В Apache 2.2 и более ранних версиях мы должны упоминать, когда мы используем Namehost Virtualhost , например, NameVirtualHost IP: 80, но Apache 2.4 не нужен, поскольку любая комбинация адреса / порта, появляющаяся в нескольких виртуальных хостах, неявно рассматривается как виртуальный хост на основе имени, Больше подробностей
1a) Создание виртуальных каталогов
Мы уже упоминали в нашей таблице тестируемой среды , мы собираемся протестировать два домена, чтобы мы узнали, работает ли он как виртуальный хост на основе имени. Для этого нам нужно создать виртуальные каталоги в папке www .
# Создать виртуальный каталог # $ sudo mkdir -p /var/www/support.2daygeek.com/public_html $ sudo mkdir -p /var/www/dev.2daygeek.com/public_html
2а) Изменить право собственности
При создании виртуального каталога По умолчанию каталог назначается пользователю root . Если у него есть права пользователя root, никто не может ничего изменить. Таким образом, нам нужно изменить право собственности соответствующего пользователя на внесение изменений самостоятельно.
# Изменить владельца # $ sudo chown -R username: username /var/www/support.2daygeek.com/public_html $ sudo chown -R username: username /var/www/dev.2daygeek.com/public_html
3a) Настройка правильного разрешения для каталога www
Установите правильное разрешение для apache web root ( / var / www ), чтобы каждый мог прочитать сайт.
$ sudo chmod -R 755 / var / www /
4a) Создание образца страницы для сайтов
Нам нужно создать образец страницы для каждого веб-сайта, чтобы мы могли проверить, работает ли он с Apache или нет.
# Создать пример страницы для support.2daygeek.com # $ sudo nano /var/www/support.2daygeek.com/public_html/index.html <html> <head> <title> Новый виртуальный хост успешно создан - support.2daygeek.com </ title> </ head> <body> <h1> Новый виртуальный хост успешно создан - support.2daygeek.com </ h1> </ body> </ html> # Создать образец страницы для dev.2daygeek.com # $ sudo nano /var/www/dev.2daygeek.com/public_html/index.html <html> <head> <title> Новый виртуальный хост успешно создан - dev.2daygeek.com </ title> </ head> <body> <h1 > Новый виртуальный хост успешно создан - dev.2daygeek.com </ h1> </ body> </ html>
5a) Создание файлов виртуальных хостов
Нам нужно создать файл виртуального хоста для каждого домена. По умолчанию в Ubuntu есть файл виртуального хоста по умолчанию 000-default.conf в / etc / apache2 / sites-available . Просто скопируйте для вашего удобства, как показано ниже. Убедитесь, что ваше расширение файла конфигурации vitualhost должно быть .conf
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/support.2daygeek.conf $ sudo cp /etc/apache2/sites-available/000-default.conf / etc /apache2/sites-available/dev.2daygeek.conf
6a) Изменить конфигурацию виртуального хоста
Откройте скопированный файл конфигурации виртуального хоста и измените содержимое, как показано ниже (в соответствии с именем вашего домена). Убедитесь, что вам нужно изменить имя домена и имя каталога в соответствии с этим.
# Модифицированный виртуальный хост для support.2daygeek.com # <VirtualHost 10.0.2.15:80> Имя_сервера support.2daygeek.com ServerAlias www.support.2daygeek.com ServerAdmin [электронная почта защищена] DocumentRoot /var/www/support.2daygeek.com/public_html ErrorLog /var/www/support.2daygeek.com/public_html/error.log CustomLog /var/www/support.2daygeek.com/public_html/access.log в сочетании </ VirtualHost> # Модифицированный виртуальный хост для dev.2daygeek.com # <VirtualHost 10.0.2.15:80> Имя_сервера support.dev.com ServerAlias www.dev.2daygeek.com ServerAdmin [электронная почта защищена] DocumentRoot /var/www/dev.2daygeek.com/public_html ErrorLog /var/www/dev.2daygeek.com/public_html/error.log CustomLog /var/www/dev.2daygeek.com/public_html/access.log в сочетании </ VirtualHost>
7a) Включение / отключение виртуальных хостов
Используйте следующие команды для включения / отключения виртуальных хостов.
# Включить виртуальные хосты # $ sudo a2ensite support.2daygeek.conf $ sudo a2ensite dev.2daygeek.conf # Отключить виртуальные хосты по умолчанию # $ sudo a2dissite 000-default.conf
8a) Запустите configtest.
Запустите приведенную ниже команду configtest, чтобы проверить, нет ли ошибок во вновь добавленных файлах конфигурации.
$ sudo apachectl configtest
9a) Перезагрузка Apache
Перезагрузите конфигурацию apache, чтобы она заработала в новой конфигурации
$ sudo service apache2 reload
10a) Перезапустите Apache
Перезапустите Apache, наконец.
$ service apache2 restart
11a) Добавление имени домена в файл hosts.
нам нужно добавить оба вышеуказанных домена в файл / etc / hosts, чтобы сопоставить домен с соответствующим IP без добавления зоны DNS . Так что мы можем проверить локально.
$ sudo nano / etc / hosts 127.0.0.1 localhost 10.0.2.15 support.2daygeek.com 10.0.2.15 dev.2daygeek.com
12a) Очистить локальный кеш DNS
Используйте команду ниже, чтобы очистить локальный кеш DNS
$ sudo /etc/init.d/dns-clean start
13a) Доступ к недавно настроенному веб-сайту
Перейдите в браузере и зайдите на сайт, перейдя по ссылкам http://support.2daygeek.com & http://dev.2daygeek.com
dev.2daygeek.com - Вывод
2) Виртуальные хосты на основе IP
В виртуальном хосте на основе имени каждый веб-сайт имеет свой IP-адрес. Вы можете назначить более одного IP-адреса для одной карты NIC или вы можете назначить каждый выделенный IP-адрес отдельной карте NIC, и практически это не очень хорошо и трудно управлять. Для SSL-сертификата нам нужно использовать виртуальные хосты на основе IP.
Как добавить виртуальный хост на основе IP в apache
Для виртуального хоста на основе IP нам нужно более одного IP. Итак, сначала нам нужно добавить дополнительный IP (с использованием псевдонимов IP). Мы уже знаем, что у нас есть один IP 10.0.2.15, который использовался для виртуального хоста Namebaed. Выполните следующие шаги, чтобы добавить дополнительный IP к той же карте NIC. Для установки SSL- сертификата все используют виртуальный хост на базе IP.
# Добавить дополнительный IP в систему # $ sudo ifconfig eth0: 1 10.0.2.16 маска сети 255.255.255.0 $ ifconfig eth0 Ссылочный код: Ethernet HWaddr 08: 00: 27: 1e: a2: 47 inet addr: 10.0.2.15 Bcast: 10.0.2.255 Маска: 255.255.255.0 inet6 адрес: fe80 :: a00: 27ff: fe1e: a247 / 64 Область действия: соединение UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1 пакеты RX: 23723 ошибки: 0 отброшено: 0 переполнений: 0 кадр: 0 TX пакеты: 16342 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0 коллизий: 0 txqueuelen: 1000 байтов RX: 15295059 (15,2 МБ) байтов TX: 1930608 (1,9 МБ) eth0: 1 Encap: Ethernet HWaddr 08:00:27 : 1e: a2: 47 inet addr: 10.0.2.16 Bcast: 10.0.2.255 Маска: 255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1 lo Ссылочный код: Локальная петля inet addr: 127.0.0.1 Маска: 255.0.0.0 inet6 addr: :: 1/128 Область действия: хост UP LOOPBACK RUNNING MTU: 65536 Метрика: 1 пакеты RX: ошибки 2020: 0 отброшено: 0 переполнений: 0 кадр: 0 пакетов TX: 2020 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0 коллизий: 0 txqueuelen: 0 RX байт: 202350 (202,3 КБ) TX байт: 202350 (202,3 КБ)
Выполните те же шаги, которые мы описали в виртуальном хосте на основе имени . И немного измените приведенные ниже шаги.
- (6a) Измените IP-адрес Virtualhost для dev.2daygeek.com на 10.0.2.16 вместо 10.0.2.15
- (11a) Изменить IP-адрес dev.2daygeek.com с 10.0.2.15 на 10.0.2.16
2a) Доступ к недавно настроенному веб-сайту
Перейдите в браузере и зайдите на сайт, перейдя по ссылкам http://10.0.2.15 & http://10.0.2.16
dev.2daygeek.com (10.0.2.16) - Вывод
Мы готовим все статьи для понимания всеми уровнями и уровнями администраторов Linux. Если статья полезна для вас, пожалуйста, потратьте меньше минуты, чтобы поделиться своими ценными комментариями в нашем разделе комментариев.
Пожалуйста, оставайтесь с нами на связи ... Удачи.
Как его работа?