Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

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

2007-05-06 · Posted in Apache

Ниже приведены несколько примеров настройки виртуальных хостов с общим ip-адресом в Apache (так называемые name-based виртуальные хосты). Подробнее о типах виртуальных хостов в Apache.

Перед настройкой виртуальных хостов нам необходимо указать все TCP порты, которые мы собираемся использовать. Для этого нам необходимы директивы Listen и NameVirtualHost.

# Прослушиваем 80 порт
Listen 80
# Прослушиваем 443 порт
Listen 443
# Эта директива сообщает серверу, что на 80 порту
# будет использоваться name-based виртуальные хосты
NameVirtualHost *:80

Базовая настройка VirtualHost: порт 80, пользовательские логи
<VirtualHost *:80>
  ServerName www.foo.com
  # Чтобы данный хост обслуживал еще и другие имена,
  # снимите комментарий со след. строки
  # ServerAlias foo.com www.bar.com bar.com
  DocumentRoot /var/www/www.foo.com/htdocs
  CustomLog /var/log/apache/www.foo.com-access.log combined
  ErrorLog /var/log/apache/www.foo.com-error.log
</VirtualHost>

Настройка на 80 порту с обслуживанием нескольких виртуальных хостов
<VirtualHost *:80>
  ServerName www.foo.com
  # Чтобы данный хост обслуживал еще и другие имена, снимите комментарий со след. строки
  # ServerAlias foo.com www.bar.com bar.com
  DocumentRoot /var/www/www.foo.com/htdocs
  CustomLog /var/log/apache/www.foo.com-access.log combined
  ErrorLog /var/log/apache/www.foo.com-error.log
</VirtualHost>

<VirtualHost *:80>
  ServerName mail.foo.com
  DocumentRoot /var/www/mail.foo.com/htdocs
  CustomLog /var/log/apache/mail.foo.com-access.log combined
  ErrorLog /var/log/apache/mail.foo.com-error.log
</VirtualHost>

Настройка виртуального хоста с пользовательскими логами и идентификацией
<VirtualHost *:80>
  ServerName www.foo.com
  DocumentRoot /var/www/www.foo.com/htdocs
  CustomLog /var/log/apache/www.foo.com-access.log combined
  ErrorLog /var/log/apache/www.foo.com-error.log
  AuthUserFile /var/www/www.foo.com/.htpasswd
  AuthType Basic
  AuthName "Authorised Users Only"
  Require valid-user
</VirtualHost>

Виртуальный хост с SSL и пользовательскими логами
<VirtualHost _default_:443>
  # Только один виртуальный хост для этого порта!
  # Name-based виртуальные хосты не работают с SSL
  ServerName www.foo.com
  DocumentRoot /var/www/www.foo.com/htdocs
  CustomLog /var/log/apache/www.foo.com-access.log combined
  ErrorLog /var/log/apache/www.foo.com-error.log
  SSLEngine On
</VirtualHost>

Leave a Reply