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

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

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

спасибо!

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

сказать Domain1.com и Domain2.com оба на моем VPS.

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

2 ответов


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


Repasting мой ответ от хостинг двух доменов с использованием только одного VPS? а вот это еще более актуально.

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

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

важно! вам нужно использовать root учетная запись для выполнения большинства операций.

важно! если вы пытались внести некоторые изменения в конфигурацию apache раньше, отмените их.

Создание VirtualHosts

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

/home/apache/domain1

/home/apache/domain2

поставить индекс.HTML-файл в каждой папке с любым текстом.

This is domain1
This is domain2

на .

создать файл домен1.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-номера.

местные компьютер!--51-->

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

sudo nano /etc/hosts

это должно выглядеть так.

127.0.0.1       localhost domain1.com domain2.com

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

важно! если вы создаете запись в файле hosts для существующего домена, например

127.0.0.1       stackoverflow.com

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

сервер

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

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

ifconfig