JavaRush /Курси /Docker SELF /Установка і налаштування веб-сервера (Nginx/Apache)

Установка і налаштування веб-сервера (Nginx/Apache)

Docker SELF
Рівень 7 , Лекція 0
Відкрита

1. Що таке веб-сервер?

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

Перш ніж занурюватися в команди, давайте розберемось, чого ми взагалі намагаємось досягти. Веб-сервер – це програма, яка приймає HTTP-запити (наприклад, коли користувач вводить у браузері адресу сайту), обробляє їх та відповідає відповідним контентом (HTML-сторінка, файл або навіть помилка «404 Not Found»). Він служить зв’язуючою ланкою між користувачами й вашим контентом.

Nginx vs Apache: битва веб-серверів

Якщо Nginx і Apache зустрілися би в кафе, то:

  • Nginx замовив би лавандовий латте і відразу вирішив би всі справи асинхронно: «Ти мені дай запит, а я через хвилинку тобі файл поверну, не відволікай!».
  • Apache, навпаки, був би більш традиційним, створив би потік під кожне завдання і відповідав би ввічливо, хоча й повільніше на великій кількості запитів.

Короткі відмінності:

Особливість Nginx Apache
Архітектура Асинхронна Потоково-орієнтована
Продуктивність Висока на великих навантаженнях Підходить для динаміки (PHP/Perl)
Простота Простота конфігурації, але свої нюанси Більш універсальний, але складніший

Коли що вибрати?

  • Якщо ваш сайт – це жменька статичних файлів (наприклад, блог або лендинг), то Nginx – ваш друг.
  • Якщо ви працюєте з динамічними веб-додатками (наприклад, PHP-сайт), Apache надасть більше гнучкості.

2. Установка веб-сервера

Тепер, коли ти зрозумів, навіщо це потрібно, пора почати встановлення. Ми розглянемо встановлення як Nginx, так і Apache. Обери, що тобі більше до вподоби, або встанови одразу обидва, щоб відчути себе профі.

Установка Nginx

  1. Оновлюємо список пакетів:

    sudo apt-get update
    
  2. Встановлюємо Nginx:

    sudo apt-get install nginx
    
  3. Перевіряємо статус сервера:

    sudo systemctl status nginx
    

    Якщо все гаразд, ти побачиш щось типу: active (running).

  4. Перевіряємо стандартну сторінку: Відкрий браузер і введи http://localhost. Ти маєш побачити вітальну сторінку Nginx, яка підтверджує, що встановлення пройшло успішно.

Установка Apache

  1. Оновлюємо список пакетів:

    sudo apt-get update
    
  2. Встановлюємо Apache:

    sudo apt-get install apache2
    
  3. Перевіряємо статус сервера:

    sudo systemctl status apache2
    

    Так само, як і з Nginx, статус має бути «active (running)».

  4. Перевіряємо стандартну сторінку: Відкрий у браузері http://localhost. Тепер там буде дефолтна сторінка Apache.


3. Базова конфігурація веб-сервера

Де сховані налаштування?

  • У Nginx головний конфігураційний файл знаходиться за адресою:

    /etc/nginx/nginx.conf
    
  • У Apache:

    /etc/apache2/apache2.conf
    

Спробуйте відкрити конфігураційні файли за допомогою вашого улюбленого редактора (наприклад, nano):

sudo nano /etc/nginx/nginx.conf
Важливо!

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

Запуск, зупинка та перезапуск серверів

Якщо знаєте, як керувати службами в Linux, то «половина справи зроблена». Ось основні команди для керування нашими веб-генераторами:

Для Nginx:

sudo systemctl start nginx   # Запуск
sudo systemctl stop nginx    # Зупинка
sudo systemctl restart nginx # Перезапуск
sudo systemctl reload nginx  # Перезавантаження конфігурації

Для Apache:

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2

Перевірка конфігурації

Перед тим як перезапускати сервер, завжди перевіряйте, чи не зробили ви помилок:

  • Для Nginx:

      sudo nginx -t
    
  • Для Apache:

      sudo apachectl configtest
    

Будь-яка помилка в конфігурації буде показана – ви не зможете випадково зламати сервер.


4. Демонстрація: запускаємо наш перший сайт

Зараз ми зробимо те, що веб-розробники дуже люблять – створимо сайт з неймовірно креативною назвою «Hello Server».

Для Nginx

  1. Створюємо директорію для сайту:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Напишіть у файлі наступне (так, все геніальне – просте):

    <h1>Hello, Nginx Server!</h1>
  2. Налаштовуємо конфігурацію:

    sudo nano /etc/nginx/sites-available/hello
    

    Ось приклад простого конфігу:

    server {
        listen 80;
        server_name hello.local;
    
        root /var/www/hello;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
        }
  3. Активація конфігурації:

    sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    
  4. Додайте запис у /etc/hosts, щоб налаштувати доменне ім'я hello.local на локальній машині:

    127.0.0.1 hello.local
    
  5. Перевірте сайт у браузері: http://hello.local.

Важливо!

Файл hosts містить мапінг IP-адрес на доменні імена. Це ваш локальний DNS-сервер. Цей файл є в кожній операційній системі. У Windows він також є, доступний за адресою C:\Windows\System32\drivers\etc\hosts

Для Apache

  1. Створюємо директорію:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Заповніть файл:

    <h1>Hello, Apache Server!</h1>
  2. Створюємо конфігурацію віртуального хоста:

    sudo nano /etc/apache2/sites-available/hello.conf
    

    Ось приклад конфігу:

    <VirtualHost *:80>
        ServerName hello.local
        DocumentRoot /var/www/hello
    
        <Directory /var/www/hello>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
  3. Активація конфігурації:

    sudo a2ensite hello.conf
    sudo systemctl reload apache2
    
  4. Додайте запис у /etc/hosts:

    127.0.0.1 hello.local
    
  5. Перевірте роботу: http://hello.local.


Після сьогоднішньої лекції ви вже готові самостійно встановити та налаштувати основний веб-сервер. Ще трохи зусиль – і ви зможете розгортати повноцінні сайти та додатки, які вже не виглядають як дитячий малюнок. Десь за рогом причаївся HTTPS, але про нього пізніше.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ