• Главная
  • Карта сайта
Не найдено

Як налаштувати віртуальні хости в Apache на Ubuntu 16.04

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

Вступ

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

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

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

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

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

Необхідні умови

Перед тим, як приступати, вам необхідно створити не-рутовий користувача , Як описано в кроках 1-4.

Також у вас повинен бути встановлений Apache, щоб виконати описувані нижче кроки. Якщо він ще не встановлений, ви можете зробити це за допомогою команди apt-get:

  • sudo apt-get update
  • sudo apt-get install apache2

Після завершення цих кроків, ми можемо почати налаштування віртуальних хостів.

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

для настройки доменних імен в DigitalOcean перейдіть за цим посиланням. Якщо у вас немає вільних доменів, на яких можна потренуватися, ви можете використовувати фіктивні доменні імена.

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

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

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

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

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

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

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

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

Крок 2 - Призначення прав

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

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

Змінна $ USER містить ім'я користувача, під яким ви залягання в поточний момент. Тепер поточний користувач володіє директоріями public_html, в яких ми будемо зберігати контент.

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

  • sudo chmod -R 755 / var / www

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

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

Наша структура директорій готова. Давайте створимо який-небудь контент для відображення відвідувачам наших сайтів.

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

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

  • nano / var / www / example.com /public_html/index.html

У цьому файлі створіть простий HTML-документ, який показує, до якого сайту він відноситься. Наш файл виглядає наступним чином:

/var/www/example.com/public_html/index.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

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

  • nano / var / www / test.com /public_html/index.html

/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>

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

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

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

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

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

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

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

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

Відкрийте новий файл в редакторі з root-правами:

  • sudo nano / etc / apache2 / sites-available / example.com .conf

Файл буде схожий на цей (ми видалили коментарі, щоб зробити його більш читабельним):

/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>

Як бачите, файл зовсім невеликий. Ми виправимо його для нашого першого домену і додамо деякі нові директиви. Ця секція конфігурації віртуального хоста відноситься до будь-якому запитам, які зроблені по 80 порту (порт за замовчуванням для HTTP).

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

ServerAdmin [email protected]

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

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

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

DocumentRoot / var / www / example.com / public_html

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

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

<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

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

  • sudo nano / etc / apache2 / sites-available / test.com .conf

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

/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>

Збережіть і закрийте файл після внесення правок.

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

Тепер, коли ми створили файли наших віртуальних хостів, ми повинні їх включити. 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

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

  • sudo service apache2 restart

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

Крок 6 - Налаштування файлу локальних хостів (опціонально)

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

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

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

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

Якщо у вас комп'ютер з Windows, ви можете знайти інструкції з редагування файлу хостів тут.

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

Для доменів, які використовуються в цьому посібнику, припустимо, що IP-адреса нашого VPS 111.111.111.111. У цьому випадку ми можемо додати наступні рядки в кінець файлу hosts:

127.0.0.1 localhost 127.0.1.1 guest-desktop 111.111.111.111 example.com 111.111.111.111 test.com

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

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

Крок 7 - Тестування результатів

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

http: // example.com

Ви повинні побачити схожу сторінку:

Аналогічно, ви можете зайти на другу сторінку:

http: // test.com

Ви побачите файл, створений для другого сайту:

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

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

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

висновок

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

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

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

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

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью