Як налаштувати віртуальні хости веб-сервера Apache на Ubuntu 16.10 або 17.04

  1. Вступ Веб-сервер Apache є найпопулярнішим способом обслуговування веб-контенту в Інтернеті. На його...
  2. Крок 2 - Створення демо сторінок для кожного віртуального хоста
  3. Крок 3 - Створення файлів налаштувань нових віртуальних хостів
  4. Крок 4 - Включення нових файлів віртуальні хостів
  5. Крок 5 - Налаштування файлу Hosts (опціонально)
  6. Крок 6 - Тестування ваших результатів
  7. висновок

Вступ

Веб-сервер Apache є найпопулярнішим способом обслуговування веб-контенту в Інтернеті. На його частку припадає більше половини активних веб-сайтів в Інтернеті, і він є надзвичайний потужним і швидким.

Apache розбиває свої функціональні можливості і компоненти на окремі блоки, які можуть бути кастомизировать і налаштовані незалежно один від одного. Базовою одиницею, яка описує індивідуальний сайт або домен, називається віртуальним хостом.

Такі розподілу дозволяють адміністратору за допомогою відповідного механізму використовувати один сервер для розміщення безлічі доменів або сайтів на одному інтерфейсі або IP. Це важливо для всіх, хто хоче розмістити кілька сайтів в одному VPS.

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

У цьому керівництві ми розповімо, як налаштувати віртуальні хости Apache на Ubuntu 16.10 або 17.04 VPS. Під час цього процесу ви дізнаєтеся, як обслуговувати різний контент для різних відвідувачів, в залежності від того, які домени вони запитують.

Передбачається, що ви працюєте під звичайним користувачем. Якщо немає, то попередньо створіть звичайного користувача і залогинтесь під ним.

Також у вас вже повинен бути встановлений Apache .

Для цілей цієї інструкції, ми будемо налаштовувати віртуальний хост для домену example.com, а інший віртуальний хост для test.com. На них будуть робитися посилання в цьому керівництві, але ви повинні підставити ваші власні домени або значення.

Для реальних доменів повинні бути прописані DNS записи, що вказують на IP вашого сервера. Якщо у вас немає доменів, з якими можна було б погратися, ви можете використовувати несправжні значення.

Якщо ви використовуєте не справжні значення, ми покажемо вам, як відредагувати ваш локальний файл hosts щоб протестувати конфігурацію. Це дозволить вам протестувати вашу конфігурацію прямо на вашому домашньому комп'ютері, нехай навіть ваш контент НЕ буде доступний через доменне ім'я для будь-якого користувача.

Крок 1 - Створення структури директорій

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

Наша коренева директорія документів (директорія самого верхнього рівня, в якій Apache шукає вміст для обслуговування) буде встановлена на індивідуальні директорії в папці / var / www. У ній ми створимо подпапки для обох віртуальних хостів, які ми плануємо зробити.

Усередині кожної з цих директорій, ми створимо папку public_html, яка і буде містити файли. Це дасть більше гнучкості в розгортанні складних веб-додатків; в папці public_html буде розташований веб-контент, а батьківська папка може содердажть скрипти або код додатка для підтримки веб-контенту.

Наприклад, для наших сайтів ми збираємося зробити наші директорії наступним чином:

sudo mkdir -p /var/www/example.com/public_html sudo mkdir -p /var/www/test.com/public_html

Оскільки ми створили директорії з sudo, то вони належать користувачеві root. Якщо ми хочемо, щоб наш звичайний користувач був здатний змінювати файли в наших веб-директоріях, ми можемо змінити права власності зробивши так:

sudo chown -R $ USER: $ USER /var/www/example.com/public_html sudo chown -R $ USER: $ USER /var/www/test.com/public_html

При натисканні на Enter змінна $ USER прийме значення вашого користувача, під яким ви увійшли. Зробивши це, наш звичайний користувач стане власником піддиректорій public_html де ми будемо розміщувати наш контент.

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

sudo chmod -R 755 / var / www

Тепер ваш веб-сервер повинен мати необхідні дозволи для обслуговування контенту, і ви повинні бути здатні створювати контент всередині необхідних папок.

Крок 2 - Створення демо сторінок для кожного віртуального хоста

Структура директорій розміщена в потрібному місці. Давайте створимо контент, щоб його міг обробляти веб-сервер.

Ми тільки збираємо показати принцип роботи, тому наші сторінки будуть дуже простими. Ми просто збираємося зробити сторінку index.html для кожного сайту.

Давайте почнемо з example.com. Ми можемо відкрити файл index.html в нашому редакторі надрукувавши:

vim /var/www/example.com/public_html/index.html

Тут і далі замість vim використовуйте звичним вам текстовий редактор (gedit, якщо ви перебуваєте в графічному оточенні, або nano в безголовому сервері).

У цьому файлі створіть HTML документ, який говорить про те, що до сайту є з'єднання. Мій файл виглядає приблизно так:

<Html> <head> <title> Welcome to Example.com! </ Title> </ head> <body> <h1> Success! The example.com virtual host is working! </ H1> </ body> </ html>

Коли закінчите, збережіть і закрийте файл.

Ми можемо скопіювати цей файл для використання його в якості основи для нашого другого сайту:

cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html

Потім ми можемо відкрити новий файл і змінити його в потрібних місцях:

vim /var/www/test.com/public_html/index.html <html> <head> <title> Welcome to Test.com! </ title> </ head> <body> <h1> Success! The test.com virtual host is working! </ H1> </ body> </ html>

Також збережіть і закрийте цей файл. Тепер у вас є необхідні сторінки для тестування конфігурації віртуального хоста.

Крок 3 - Створення файлів налаштувань нових віртуальних хостів

Файли віртуальні хостів - це файли, які задають конфігурація наших віртуальні хостів і кажуть веб-сервера Apache як відповідати на запити різних доменів.

Apache поставляється зі стандартним файлом віртуального хоста, званим 000-default.conf. Його ми можемо використовувати як відправну точку. Ми скопіюємо його для створення файлу віртуального хоста для кожного нашого домену.

Ми почнемо з одного домену, настроєм його, скопіюємо його для нашого другого домену і потім зробимо невеликі необхідні виправлення. Стандартна конфігурація Ubuntu вимагає, щоб кожен файл віртуального хоста закінчувався на .conf.

Створіть перший файл віртуального хоста

Почніть з копіювання файлу для першого домену:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Відкрийте новий файл в текстовому редакторі з привілеями рута:

sudo vim /etc/apache2/sites-available/example.com.conf

Файл буде виглядати приблизно так (я видалив тут коментарі, щоб зробити файл більш читабельним):

<VirtualHost *: 80> ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log combined </ VirtualHost>

Як ви можете переконатися, тут не дуже багато. Ми настрої пункти для нашого першого домену і додамо деякі директиви. Секція VirtualHost відповідає будь-яким запитам, зробленим на порт 80, це стандартний HTTP.

Для початку нам потрібно змінити директиву ServerAdmin, впишіть сюди адресу електронної пошти, на який адміністратор може приймати листи.

ServerAdmin [email protected]

Після цього нам потрібно додати дві директиви. Перша називається ServerName, вона встановлює базовий домен, який повинен відповідати визначенню віртуального хоста. Швидше за все, це буде ваш домен. Друга, звана ServerAlias, визначає додаткові імена (псевдоніми), за якими також можна звернутися до цього віртуального хосту. Тобто тут вказуються різні імена хостів, що вказують на один віртуальний хост, наприклад, щоб сайти з і без www сервер вважав за один сайт потрібно зробити так:

ServerName example.com ServerAlias ​​www.example.com

Ще нам залишилося змінити шлях, який вказує де розміщена коренева директорія сайту для цього домену - DocumentRoot. Ми вже створили потрібну нам директорію, тому нам потрібно просто змінити директиву DocumentRoot відповідно до нашими умовами:

DocumentRoot /var/www/example.com/public_html

В остаточному підсумку файл нашого віртуального хоста виглядає так:

<VirtualHost *: 80> ServerAdmin [email protected] ServerName example.com ServerAlias ​​www.example.com DocumentRoot /var/www/example.com/public_html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} / access. log combined </ VirtualHost>

Збережіть і закрийте цей файл.

Скопіюйте перший віртуальний хост і подредактіруйте під другий домен

Тепер, коли файл нашого першого віртуального хоста готовий, ми можемо створити другий скопіювавши цей файл і поднастроіть його як потрібно.

Почнемо з копіювання:

sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf

Відкрийте новий файл з привілеями рута в вашому редакторі:

sudo vim /etc/apache2/sites-available/test.com.conf

Тепер потрібно змінити інформацію, специфічну для другого домену. Коли закінчите, може вийти приблизно так:

<VirtualHost *: 80> ServerAdmin [email protected] ServerName test.com ServerAlias ​​www.test.com DocumentRoot /var/www/test.com/public_html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} / access. log combined </ VirtualHost>

Коли все готово, збережіть і закрийте файл.

Крок 4 - Включення нових файлів віртуальні хостів

Тепер, створивши файли наших віртуальних хостів, ми повинні включити їх. Apache має кілька інструментів, що дозволяють нам це зробити.

Ми можемо використовувати інструмент a2ensite для включення кожного нашого сайту приблизно наступним чином:

sudo a2ensite example.com.conf sudo a2ensite test.com.conf

Далі відключимо стандартний сайт, визначений в 000-default.conf:

sudo a2dissite 000-default.conf

Коли ви закінчите, вам потрібно перезапустити Apache щоб ці зміни вступили в силу:

sudo systemctl restart apache2

В іншої документації можна побачити приклад використовує іншу сервісну команду:

sudo service apache2 restart

Ця команда ще працює, але ви можете не побачити висновок, зазвичай видимий на інших системах, оскільки зараз це обгортка для systemctl з systemd.

Крок 5 - Налаштування файлу Hosts (опціонально)

Якщо для цього процесу ви використовуєте не реальні належать вам доменні імена, а використовуєте ті приклади, які вказані в цій статті, ви все одно можете протестувати успішність налаштування сервера. Цього можна домогтися тимчасовим зміною файлу hosts на вашому локальному комп'ютері.

Ця установка перехоплювати будь-які запити для налаштованих вами доменів і вказувати на ваш локальний комп'ютер або VPS сервер, як би це робила DNS система якби використовувалися зареєстровані домени. Хоча це буде працювати тільки з вашого комп'ютера, це корисно для цілей тестування.

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

Якщо ви на комп'ютері Mac або Linux, відредагуйте ваш локальний файл з привілеями адміністратора:

sudo gedit / etc / hosts

Припустимо, мій VPS має IP адреса 111.111.111.111, тоді в самий низ файлу hosts мені потрібно додати два рядки:

127.0.0.1 localhost ... 111.111.111.111 example.com 111.111.111.111 test.com

Якщо ви налаштували віртуальні домену на локалхосте, то рядки можуть виглядати так:

127.0.0.1 example.com 127.0.0.1 test.com

Якщо ви на машині Windows, відкрийте командний рядок з привілеями адміністратора і наберіть там:

notepad% windir% \ system32 \ drivers \ etc \ hosts

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

Вам потрібно додати IP адреса вашого VPS сервера за яким слід домен, який ви хочете досягти на VPS.

Це буде перенаправляти будь-які запити на example.com і test.com з вашого комп'ютера і відправляти їх на ваш сервер 111.111.111.111.

Збережіть і закрийте файл. Тепер ви можете протестувати ваші настройки. Коли переконаєтеся, що все працює, видаліть ці два рядки з файлу.

Крок 6 - Тестування ваших результатів

Тепер, після настройки ваших віртуальних хостів, ви можете легко протестувати вашу установку перейшовши на домен, який ви налаштовували в вашому веб-браузері. Відвідайте перший сайт http://example.com і ви побачите приблизно наступну сторінку:

Точно також відвідайте другий сайт http://test.com, ви побачите файл, створений для другого сайту:

Якщо обидва цих сайту працюють добре, значить ви успішно налаштували два віртуальних хоста на одному сервері.

Примітка: якщо в кроці 5 ви додали рядки в ваш файл hosts, то тепер можете видалити їх, щоб не заповнювати цей файл непотрібними даними.

висновок

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

Немає програмних обмежень на кількість доменних імен, які може обслуговувати Apache, тому додавайте стільки, скільки ваш сервер спосіб обробити.

Пов'язані статті:

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: