Розміщуйте кілька доменів на одному сервері чи IP-адресі за допомогою Apache або Nginx

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

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

Якщо ви керуєте кількома веб-сайтами для вашого бізнесу, але не бажаєте розміщувати їх на окремих серверах, вам допоможе технологія віртуальних хостів, що підтримується веб-серверами. Розглянемо цей сценарій детальніше.

Припустимо, у вас є два веб-сайти, які ви хочете націлити на одну вашу віртуальну машину у хмарі.

Перш ніж переходити до реалізації, давайте з’ясуємо, як це працює.

Концепція розміщення декількох веб-сайтів на одному веб-сервері відома як віртуальний хостинг. Конфігурація визначається у файлі налаштувань, де вказується відповідна URL-адреса. Коли надходить запит на визначену URL-адресу, веб-сервер обробляє трафік, беручи контент з відповідного кореневого каталогу.

Налаштування віртуального хосту в Apache для розміщення декількох доменів

  • Підключіться до вашого Apache HTTP-сервера.
  • Знайдіть місце розташування конфігураційного файлу Apache. (зазвичай він знаходиться тут: /etc/httpd/conf/httpd.conf)
  • Зробіть резервну копію файлу httpd.conf.
  • Створіть блоки VirtualHost, як показано нижче. Приклад для двох доменів:
<VirtualHost *:80>
ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/lab
   ServerName lab.techukraine.net.com
   ErrorLog logs/lab.techukraine.net.com-error_log
   CustomLog logs/lab.techukraine.net.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. Оберіть підхід, який вам найбільше підходить, і не забудьте зробити резервну копію перед зміною існуючого файлу.

  • Створіть блоки server для кожної з URL-адрес, як показано нижче:
server {
listen 80;
   root /opt/htdocs/lab;
index index.html index.htm;
   server_name lab.techukraine.net.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 та server_name згідно з вашими шляхами до файлів і доменними іменами.

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

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

Підсумок

Це був короткий огляд процесу розміщення декількох доменів на одному веб-сервері, такому як Apache або Nginx. Коли ваш веб-сайт запрацює, обов’язково перевірте його на наявність вразливостей у безпеці.

Чи була ця стаття корисною? Можливо, ви захочете поділитися цією інформацією з іншими?