SharePoint Alfresco PHP MySQL
О сайте Контакты
понедельник, 3 июня 2013 г.

Несколько доменов на одном IP, настройка в Apache

Очень часто требуется сделать так, чтобы один веб-сервер обслуживал несколько доменных имен. Например, вы имеете сервер разработки, на котором хостятся необходимые вам приложения и сайты. Вы, конечно, можете разделять сервисы по портам, придумывая каждый раз новую цифру (web:20020, web:20056, и т.д.) Когда-нибудь вам станет неудобно запоминать множество цифр и захочется видеть в адресной строке осмысленные доменные имена. К тому же, веб-приложения традиционно должны запускаться по 80 порту. Apache может позволить нам поделить этот порт между различными приложениями/доменными именами. Таким образом, мы подошли к настройке доступа к веб-серверу по нескольким доменным именам.

В интернете есть множество инструкций на эту тему, не все они понятные и пригодные. Я просто приведу пример настроек, как это сделано у меня.

ServerName web

NameVirtualHost 10.0.1.1:80
Listen 10.0.1.1:80

# single-word domain
<VirtualHost web:80>
  ServerName web
  ServerAlias web.domain.ru
  ProxyPass / http://127.0.0.1:20060/ min=5 ttl=120 keepalive=On timeout=20
  ProxyPassReverse / http://127.0.0.1:20060/  
</VirtualHost>

# domain.ru
<VirtualHost domain.ru:80>
  ServerName domain.ru
  ProxyPreserveHost On
  ProxyPass / http://127.0.0.1:20020/ min=5 ttl=120 keepalive=On timeout=20
  ProxyPassReverse / http://127.0.0.1:20020/
</VirtualHost>

# domain.com
<VirtualHost domain.com:80>
  ServerName domain.com
  ProxyPreserveHost On
  ProxyPass / http://127.0.0.1:20019/ min=5 ttl=120 keepalive=On timeout=20
  ProxyPassReverse / http://127.0.0.1:20019/
</VirtualHost>

Обратите внимание, один сервер обслуживает 4 доменных имени: domain.ru, domain.com, web и web.domain.ru. Если зайти на web или web.domain.ru, откроется один и тот же ресурс, так как они указаны как алиасы. По другим двум доменам откроются соответствующие приложения, к которым я пробросил прокси. В общем-то, ничего сложного, а нюансы всегда можно посмотреть в документации к Apache.

Sergey Lysenko, понедельник, 3 июня 2013 г.

Комментарии: