Виртуальный хостинг Apache: виртуальные хосты на основе IP и имен в RHEL / CentOS / Fedora

Как все мы знаем, Apache — очень мощный, очень гибкий и настраиваемый веб-сервер для ОС *Nix . Здесь, в этом руководстве, мы собираемся обсудить еще одну особенность Apache,которая позволяет нам размещать более одного веб-сайта на одной машине с Linux. Внедрение виртуального хостинга с веб-сервером Apache может помочь вам сэкономить средства, которые вы инвестируете в обслуживание вашего сервера и его администрирование.

Концепция общего веб-хостинга и реселлерского веб-хостинга основана только на этой возможности Apache .

Типы виртуальных хостов

Существует два типа виртуального хостинга, доступных с Apache.

Виртуальный хостинг на основе имени
Виртуальный хостинг на основе имени

С помощью виртуального хостинга на основе имени вы можете разместить несколько доменовсайтов на одном компьютере с одним IP . Все домены на этом сервере будут использовать один IP-адрес. Это легче настроить, чем виртуальный хостинг на основе IP, вам нужно только настроить DNS домена, чтобы сопоставить его с правильным IP-адресом, а затем настроить Apache для распознавания его по доменным именам.

Виртуальный хостинг на основе IP

Виртуальный хостинг на основе IP

Виртуальный хостинг на основе IP позволяет назначить отдельный IP-адрес для каждого домена на одном сервере, эти IP-адреса могут быть подключены к серверу с помощью одной карты NIC и нескольких сетевых карт.

Давайте настроим Виртуальный хостинг на основе имени и Виртуальный хостинг на основе IP в RHEL, CentOS и Fedora .

Тестовая среда
  1. ОС — CentOS 6.5
  2. Приложение — веб-сервер Apache
  3. IP-адрес — 192.168.0.100
  4. IP-адрес — 192.168.0.101
  5. Домен — www.example1.com
  6. Домен — www.example2.com

Как настроить виртуальные хосты Apache на основе IP и имен

Перед настройкой виртуального хостинга с Apache на вашей системе должно быть установлено программное обеспечение Apache Web. если нет, установите его с помощью установщика пакета по умолчанию, называемого yum.

 [root@tecmint ~]# yum install httpd

Настройка имени на основе виртуального хоста

Но перед созданием виртуального хоста вам необходимо создать каталог, в котором вы будете хранить все файлы вашего сайта. Итак, создайте каталоги для этих двух виртуальных хостов в папке /var/www/html . Помните, что 
/var/www/html  будет корневым каталогом документов по умолчанию в виртуальной конфигурации Apache.

[root@tecmint ~]# mkdir /var/www/html/example1.com/
[root@tecmint ~]# mkdir /var/www/html/example2.com/

Чтобы настроить виртуальный хостинг на основе имен, вы должны указать Apache, какой IP-адрес вы будете использовать для получения запросов Apache для всех веб-сайтов или доменных имен. Мы можем сделать это с помощью директивы NameVirtualHost . Откройте основной файл конфигурации Apache с помощью редактора VI .

 [root@tecmint ~]# vi /etc/httpd/conf/httpd.conf

Найдите NameVirtualHost и раскомментируйте эту строку, удалив перед ней знак # .

NameVirtualHost

Затем добавьте IP-адрес, с которым вы хотите получать запросы Apache. После изменений ваш файл должен выглядеть следующим образом:

NameVirtualHost 192.168.0.100:80

Теперь пришло время для настройки виртуальных разделов хоста для ваших доменов, перейдите к нижней части файла, нажав Shift + G . Здесь, в этом примере, мы настраиваем разделы виртуального хоста для двух доменов.

  1. www.example1.com
  2. www.example2.com

Добавьте следующие две виртуальные директивы внизу файла. Сохраните и закройте файл.

 <VirtualHost 192.168.0.100:80>
ServerAdmin webmaster@example1.com
DocumentRoot /var/www/html/example1.com
ServerName www.example1.com
ErrorLog logs/www.example1.com-error_log
CustomLog logs/www.example1.com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@example2.com
DocumentRoot /var/www/html/example2.com
ServerName www.example2.com
ErrorLog logs/www.example2.com-error_log
CustomLog logs/www.example2.com-access_log common
</VirtualHost>

Вы можете добавить столько директив, сколько хотите добавить в раздел виртуальных хостов ваших доменов. Когда вы закончите с изменениями в файле httpd.conf , пожалуйста, проверьте синтаксис файлов с помощью следующей команды.

 [root@tecmint ~]# httpd -t

Syntax OK

Рекомендуется проверять синтаксис файла после внесения некоторых изменений и перед перезапуском веб-сервера, поскольку в случае неправильного синтаксиса Apache откажется работать с некоторыми ошибками и в конечном итоге повлияет на работу существующего веб-сервера на некоторое время, если «syntax OK» . Перезапустите ваш веб-сервер и добавьте его в chkconfig, чтобы ваш веб-сервер запускался на уровнях запуска 3 и 5 только во время загрузки.

 [root@tecmint ~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[ root @ tecmint ~] # chkconfig --level 35 httpd on

Теперь пришло время создать тестовую страницу с именем index.html, добавить некоторое содержимое в файл, чтобы у нас было что проверить, когда IP-адрес вызывает виртуальный хост.

[root @ tecmint ~] # vi /var/www/html/example1.com/index.html
<html>
<head>
<title> www.example1.com </title>
</head>
<body>
<h1>Hello, Welcome to www.example1.com. </h1>
</body>
</html>
[ root @ tecmint ~] # vi /var/www/html/example2.com/index.html
<html>
<head>
<title> www.example2.com </title>
</head>
<body>
<h1> Hello, Welcome to www.example2.com. </h1>
</body>
</html>

Как только вы закончите с этим, вы можете проверить настройки, открыв оба домена в браузере.

http://www.example1.com 
http://www.example2.com
Предварительный просмотр: www.example1.com
Виртуальный хостинг: www.example1.com
Виртуальный хостинг: www.example2.com

Настройка виртуального хостинга на базе IP Linux

Чтобы настроить виртуальный хостинг на основе IP, вы должны иметь более одного IP-адреса / порта, назначенного вашему серверу или вашему компьютеру Linux.

Это может быть одна карта NIC , например: eth0: 1 , eth0: 2 , eth0: 3 … и так далее. Можно также подключить несколько сетевых карт. Если вы не знаете, как создать несколько IP-адресов на одном сетевом адаптере , следуйте приведенному ниже руководству, которое поможет вам в создании.

Целью реализации виртуального хостинга на основе IP является назначение реализации для каждого домена, и этот конкретный IP не будет использоваться никаким другим доменом.

Этот тип настройки требуется, когда веб-сайт работает с сертификатом SSL ( mod_ssl ) или на разных портах и ​​IP-адресах. Вы также можете запустить несколько экземпляров Apache на одном компьютере. Чтобы проверить IP-адреса, подключенные к вашему серверу, проверьте его с помощью команды ifconfig .

root @ tecmint ~] # ifconfig
Пример вывода
eth0      Link encap:Ethernet  HWaddr 08:00:27:4C:EB:CE   
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe4c:ebce/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17550 errors:0 dropped:0 overruns:0 frame:0
TX packets:15120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:16565983 (15.7 MiB) TX bytes:2409604 (2.2 MiB)
eth0:1 Link encap:Ethernet HWaddr 08:00:27:4C:EB:CE
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1775 errors:0 dropped:0 overruns:0 frame:0
TX packets:1775 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
RX bytes:3416104 (3.2 MiB) TX bytes:3416104 (3.2 MiB)

Как видно из вышеприведенного вывода, два IP-адреса 192.168.0.100 ( eth0 ) и 192.168.0.101 ( eth0: 1 ) подключены к серверу, оба IP-адреса назначены одному физическому сетевому устройству ( eth0 ).

Теперь, назначив определенный IP / порт для получения http-запросов, вы можете просто сделать это, изменив директиву Listen в файле httpd.conf .

[root @ tecmint ~] # vi /etc/httpd/conf/httpd.conf

Ищите слово «Listen». Вы найдете раздел, в котором написано краткое описание директивы Listen. В этом разделе прокомментируйте оригинальную строку и напишите собственную директиву ниже этой строки.

# Listen 80
Listen 192.168.0.100:80

Теперь создайте разделы виртуального хоста для обоих доменов. Перейдите в конец файла и добавьте следующие виртуальные директивы.

 <VirtualHost 192.168.0.100:80>
ServerAdmin webmaster@example1.com
DocumentRoot /var/www/html/example1
ServerName www.example1.com
ErrorLog logs/www.example1.com-error_log
TransferLog logs/www.example1.com-access_log
</VirtualHost>

<VirtualHost 192.168.0.101:80>
ServerAdmin webmaster@example2.com
DocumentRoot /var/www/html/example2
ServerName www.example2.com
ErrorLog logs/www.example2.com-error_log
TransferLog logs/www.example2.com-access_log
</VirtualHost>

Теперь, поскольку вы изменили основной файл конфигурации Apache, вам нужно перезапустить службу http, как показано ниже.

[root@tecmint ~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

Проверьте настройки виртуального хостинга на основе IP, открыв URL-адреса в веб-браузере, как показано ниже.

http://www.example1.com
http://www.example2.com

Это все, что касается виртуального хоста Apache сегодня.

admin

Нужно войти чтобы оставить комментарий.