Примеры настройки виртуальных хостов
Ниже приведены несколько примеров настройки виртуальных хостов с общим ip-адресом в Apache (так называемые name-based виртуальные хосты). Подробнее о типах виртуальных хостов в Apache.
Перед настройкой виртуальных хостов нам необходимо указать все TCP порты, которые мы собираемся использовать. Для этого нам необходимы директивы Listen и NameVirtualHost.
# Прослушиваем 80 порт
Listen 80
# Прослушиваем 443 порт
Listen 443
# Эта директива сообщает серверу, что на 80 порту
# будет использоваться name-based виртуальные хосты
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>
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>
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>
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>
# Только один виртуальный хост для этого порта!
# 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>
Источник: wiki.apache.org
Комментарий от seo — Декабрь 22, 2006 @ 3:43 am
ServerAdmin $webmaster
ServerName $domain
DocumentRoot $docroot/htdocs
ErrorLog $docroot/logs/error_log
CustomLog $docroot/logs/access_log combined
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride All
#-------------------------------------------------------------------------------
ScriptAlias /cgi-bin/ "$docroot/cgi-bin/"
Alias /perl/ $docroot/perl/
AllowOverride All
Options +ExecCGI +FollowSymLinks
Order allow,deny
Allow from all
#-------------------------------------------------------------------------------
Use static_area $domain $docroot $webmaster
Use execute_area $docroot
Потом просто:
Use vhost aa.bb.cc.dd xxx.tomsk.ru /home/httpd/xxx.tomsk.ru admin@xxx.tomsk.su
Комментарий от Alexey A. Ukhov — Декабрь 22, 2006 @ 11:02 am
вот тут примеры есть
http://www.cri.ensmp.fr/~coelho/mod_macro/#examples
Комментарий от Alexey A. Ukhov — Декабрь 22, 2006 @ 11:03 am
Комментарий от Администратор — Декабрь 22, 2006 @ 3:05 pm
Имхо RSS и удобнее и вспоминаешь про нужные сайты чаще
Комментарий от Администратор — Декабрь 22, 2006 @ 3:09 pm
vhosts.conf.m4:
include(`rules.m4')dnl
vhost(example.com, user)
Получаем конфиг:
m4 vhosts.conf.m4 > vhosts.conf
Где rules.m4:
define(`vhost',`dnl
ServerName $1
ServerAlias www.$1
DocumentRoot /home/$2/$1/www
AllowOverride All
Options +Includes
SuexecUserGroup $2 $2
ScriptAlias /cgi-bin/ /home/$2/$1/cgi-bin/
CustomLog logs/$1/access_log combined
ErrorLog logs/$1/error_log
php_admin_value open_basedir "/home/$2/"
php_admin_value doc_root "/home/$2/$1"
php_admin_value upload_tmp_dir "/home/$2/$1/tmp"
php_value session.save_path "/home/$2/$1/tmp"
# Manual part for $1:
sinclude(`$1.custom')dnl
')dnl
Комментарий от myhand — Декабрь 30, 2006 @ 7:46 pm
как минимум добавляется одно телодвижение при добавлении хоста
Комментарий от auk — Январь 5, 2007 @ 9:33 pm
m4 полноценный макропроцессор, условную логику позволяет, например.
Комментарий от myhand — Январь 7, 2007 @ 1:50 am
Комментарий от хм не работает... — Январь 22, 2007 @ 12:54 pm
Если
# Только один виртуальный хост для этого порта!
# Name-based виртуальные хосты не работают с SSL
то тогда как SSL организован у провайдера, т.е. на одном ip есть несколько сайтов (доменов второго и третьего уровня), каждый из которых работает через https?
Комментарий от user — Март 15, 2007 @ 2:00 pm
# 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
Не пойму одного, везде пишется что SSL может быть только один на IP:PORT адресе, но у меня работает на 1 IP:PORT любое количество доменов, хоть указывать на один сертификат хоть создавать каждому свой сертификат.
Комментарий от Evgeniy — Июль 28, 2007 @ 3:23 pm
Комментарий от Evgeniy — Июль 28, 2007 @ 3:27 pm
Комментарий от Cast — Ноябрь 13, 2007 @ 10:38 pm
__________________
http://www.foursea.ru/
Комментарий от андрюха — Август 31, 2008 @ 12:02 am
Комментарий от Михаил — Октябрь 13, 2008 @ 10:48 am
Комментарий от Геннадий — Ноябрь 5, 2008 @ 1:56 pm
Комментарий от Феликс — Ноябрь 5, 2008 @ 1:57 pm
Комментарий от Мартин — Ноябрь 8, 2008 @ 2:21 am
В общем настроил все, но выходит ошибка Bad request! Error 400!
но когда к нужному хосту в адресной строке добавляеш index то работает нормальнО! тоесть
xxx.mydomain.com выдает ошибку
xxx.mydomain.com/index.php все работает нормальнО!
Неподскажите что и где я не так сделал примерно!! Ответ на e-mail
Комментарий от Димко — Декабрь 21, 2008 @ 9:47 pm
Комментарий от Максим — Декабрь 26, 2008 @ 4:26 pm
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
так проще
Комментарий от Хичкок — Январь 19, 2009 @ 1:43 am
Комментарий от Georg — Январь 20, 2009 @ 1:05 am
Комментарий от Альберт Эйнштейн — Январь 21, 2009 @ 2:30 am
Комментарий от PostPortal — Январь 22, 2009 @ 1:36 am
Комментарий от kerno — Март 4, 2009 @ 6:04 am
Комментарий от Рудольф — Март 9, 2009 @ 10:47 pm
Комментарий от postnews — Март 14, 2009 @ 10:42 am
Комментарий от Gsm-сигнализация — Апрель 8, 2009 @ 9:54 pm