Размещение нескольких доменов на одном сервере или IP с помощью Apache или Nginx

Давайте узнаем, как настроить Apache и Nginx для размещения нескольких веб-сайтов.

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

Если вы используете несколько бизнес-сайтов, но не хотите размещать их отдельно, вы можете воспользоваться виртуальным сервером на веб-серверах. Давайте посмотрим на этот сценарий.

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

Перед реализацией давайте разберемся, как это работает.

Концепция размещения нескольких веб-сайтов на одном экземпляре веб-сервера называется виртуальным сервером. Он определяется в файле конфигурации вместе с URL-адресом. Когда делается запрос на определенный URL-адрес, веб-сервер будет обслуживать трафик из соответствующего корня документа.

Настройте виртуальный хост в Apache для размещения нескольких доменов.

  • Войдите в HTTP-сервер Apache
  • Перейдите в расположение apache conf. (при установке по умолчанию — вы найдете его здесь /etc/httpd/conf/httpd.conf)
  • Сделайте резервную копию файла httpd.conf
  • Создайте контейнер VirtualHost, как показано ниже, я сделал для двух доменов.
<VirtualHost *:80>
ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/lab
   ServerName lab.toadmin.ru.com
   ErrorLog logs/lab.toadmin.ru.com-error_log
   CustomLog logs/lab.toadmin.ru.com-access_log common
</VirtualHost>

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/gf-dev
   ServerName gf.dev
   ErrorLog logs/gf.dev-error_log
   CustomLog logs/gf.dev-access_log common
</VirtualHost>

Примечание. Измените значение для ServerAdmin, DocumentRoot, ServerName, ErrorLog, CustomLog в соответствии с вашими требованиями.

  • Перезапустите Apache HTTP и проверьте оба URL-адреса.

Настройте виртуальный хост в Nginx для размещения нескольких доменов.

  • Вход на сервер Nginx
  • Перейдите в место, где вы установили Nginx. (в расположении по умолчанию — вы найдете его здесь /etc/nginx/)

Есть несколько способов добиться этого. Либо вы можете изменить файл nginx.conf, либо пользовательский файл, если он у вас есть. Вы также можете создать custom.conf в папке conf.d. Выберите то, что подходит именно вам, и сделайте резервную копию при изменении существующего файла.

  • Создайте блок сервера для обоих URL-адресов, как показано ниже.
server {
listen 80;
   root /opt/htdocs/lab;
index index.html index.htm;
   server_name lab.toadmin.ru.com;
   location / {
       try_files $uri $uri/ =404;
   }
}

server {
   listen 80;
   root /opt/htdocs/gf-dev;
   index index.html index.htm;
   server_name gf.dev;
   location / {
       try_files $uri $uri/ =404;
   }
}

Примечание. Измените значение для root, имя_сервера в соответствии с вашими требованиями.

  • Перезапустите Nginx и проверьте оба URL-адреса.

Не забудьте обновить запись DNS вашего URL-адреса, чтобы сопоставить его с IP-адресом сервера. После этого вы сможете получить доступ к URL-адресам, которые обслуживаются с помощью указанной выше конфигурации.

Вывод

Это было краткое руководство по размещению нескольких доменов на одном экземпляре веб-сервера, таком как Apache или Nginx. Как только ваш веб-сайт будет запущен, не забудьте проверить его на наличие уязвимостей в системе безопасности.

Понравилось читать статью? Как насчет того, чтобы поделиться с миром?