Несколько доменов на VPS с Apache

Я планирую скоро получить 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.

Ответ 1

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

Ответ 2

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

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

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

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

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

Создание VirtualHosts

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

/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