Несколько доменов на VPS с Apache - PullRequest
10 голосов
/ 16 августа 2010

Я планирую в ближайшее время получить VPS, и у меня есть два сайта, которые я хочу разместить.У меня есть локальная настройка vhosts для моей среды разработки, использующая файл хоста для правильного его портирования.

Надеюсь, мой вопрос прост: при настройке двух отдельных доменов, которые указывают на один VPS-сервер, Apache достаточно умен,в локальной среде, чтобы автоматически фильтровать любые запросы для domain.com на правильный VHOST, как это делает локально?Я просто хотел бы быть уверен:)

Спасибо!

Пример того, что я спрашиваю:

Предположим, что Domain1.com и Domain2.com оба на моем VPS.

Когда кто-то запрашивает www.Domain1.com, Apache видит это и передает его в vhost-файл domain1.com.Когда кто-то запрашивает www.Domain2.com, Apache видит это и передает его в vhost-файл domain2.com.

Ответы [ 2 ]

10 голосов
/ 29 сентября 2012

Воспроизведение моего ответа от Размещение двух доменов с использованием только одного VPS? , поскольку здесь это даже более актуально.

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

Ниже для начинающих я опишу, как разместить несколько доменов на одном VPS-сервере с Ubuntu и Apache.

ВАЖНО! Для выполнения необходимо использовать учетную запись rootбольшинство операций.

ВАЖНО! Если вы уже пытались внести некоторые изменения в конфигурацию Apache, отмените их.

Создание виртуальных хостов

Создание папокдля ваших доменов на сервере.Например:

/home/apache/domain1

/home/apache/domain2

Поместите файл index.html в каждую папку с любым текстом.

This is domain1
This is domain2

Перейдите в папку /etc/apache2/sites-available.

Создайте файл domain1.conf

sudo nano domain1.conf

<VirtualHost *:80>
DocumentRoot /home/apache/domain1
ServerName domain1.com
ServerAlias www.domain1.com
</VirtualHost>

Создать файл domain2.conf

sudo nano domain2.conf

<VirtualHost *:80>
DocumentRoot /home/apache/domain2
ServerName domain2.com
ServerAlias www.domain2.com
</VirtualHost>

Субдомены можно создавать одинаково.

sudo nano blog.conf

<VirtualHost *:80>
DocumentRoot /home/apache/blog
ServerName blog.domain.com
ServerAlias www.blog.domain.com
</VirtualHost>

Включить созданные сайты

sudo a2ensite domain1.conf
sudo a2ensite domain2.conf

Перезапуск apache

sudo service apache2 reload

Перенаправление домена на сервер

Созданные VirtualHosts будут работать, только если вы перенаправите свое доменное имя на IP-адрес сервера.Домены - это просто имена, которые можно преобразовать в IP-номера.

Локальный компьютер

Чтобы проверить свою конфигурацию на локальном компьютере, вам необходимо отредактировать файл hosts.

sudo nano /etc/hosts

Он должен выглядеть следующим образом.

127.0.0.1       localhost domain1.com domain2.com

Файл Hosts сообщает вашему компьютеру, что домен необходимо перенаправить на локальный компьютер.

ВАЖНО! Если вы создаете запись в хостахфайл для существующего домена, например

127.0.0.1       stackoverflow.com

, вы потеряете доступ к этому сайту.

Сервер

Чтобы перенаправить домен на ваш веб-сервер, вам необходимосоздайте или измените DNS-запись типа «A» для данного домена на IP-адрес вашего сервера.Это можно сделать с помощью панели управления, предоставленной регистратором домена.

Если вы не знаете IP-адрес своего сервера, войдите на этот сервер и введите в командной строке:

ifconfig
10 голосов
/ 16 августа 2010

Простой ответ - «да», Apache такой умный.Если вы привыкли использовать локальный файл vhost вместе с вашим файлом hosts для симуляции локальных доменов, точно такой же метод можно применить к VPS.Часть, которую вы делаете с файлом hosts, по сути создает локальный сервер имен, за исключением того, что Apache не знает разницы.Просто установите директиву ServerName для каждого именованного хоста, и вы увидите, что он работает так же, как и локально.

...