Black Friday! Даруємо до 3 місяців вашого тарифу VPS!

Детальніше

Як встановити Nginx на Ubuntu

post thumbnail

Nginx – найбільш популярний веб-сервер, на якому є можливість розміщувати об’ємні сайти з великим трафіком. На відміну від Apache, в Nginx робочі процеси обслуговуються одночасно безліччю з’єднань, мультиплексуючи їх викликами операційної системи, що забезпечує низьке споживання серверних ресурсів. Плюсом є також те, що він може використовуватися як зворотній проксі-сервер. Давайте докладніше розглянемо і допоможемо вам розібратися з тим, як встановити nginx на ubuntu.

Крок 1 – Налаштування веб-сервера Nginx після встановлення

Авторизуйтесь в систему під root-користувачем, щоб почати налаштування. Пакет Nginx доступний в стандартному репозиторії системи Ubuntu. Для початку оновимо в індекс пакетів (apt) (у разі, якщо це перша взаємодія з системою пакетування apt в поточній сесії):

apt update

Далі перейдемо до встановлення Nginx.

apt install nginx

У терміналі з’явиться список встановлених пакетів. Натисніть Y і Enter для продовження інсталяції, і Nginx буде встановлений з усіма його залежностями.

Крок 2 – Налаштування фаервола UFW

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

Відкрийте список профілів ufw:

ufw app list

Available applications:

Nginx Full

Nginx HTTP

Nginx HTTPS

OpenSSH

Як результат отримуємо відображення трьох профілів Nginx:

  • Nginx Full: відкрити як незахищене з’єднання (80-й порт) так і захищене (443-й порт).
  • Nginx HTTP: відкрити виключно незахищене з’єднання (на 80 порт).
  • Nginx HTTPS: відкрити захищене з’єднання (порт 443).

Оскільки на Nginx спочатку не налаштована робота по захищеному з’єднанню, для початку вмикаємо трафік по 80 порту. Для того, щоб увімкнути, виконуємо:

ufw allow 'Nginx HTTP'

Перевірка статусу профілю:

ufw status

Отримуємо висновок, що трафік HTTP дозволений:

Status: active

To Action From 
-- ------ ---- 
OpenSSH ALLOW Anywhere 
Nginx HTTP ALLOW Anywhere 
OpenSSH (v6) ALLOW Anywhere (v6) 
Nginx HTTP (v6) ALLOW Anywhere (v6)

Крок 3 – Тест веб-сервера

Після того як буде встановлено Ubuntu 18, Nginx запуститься автоматично. Для перевірки того, що це дійсно так, дізнаємося його статус в ініціалізації systemd.

systemctl status nginx

Отримуємо інформацію про те, що Nginx активний.

Active: active (running) since Sat 2020-07-04 09:28:52 PDT; 2s ago

Другий спосіб – за допомогою посадкової сторінки Nginx. Перевіряємо її в браузері за IP-адресою, яку ви отримували в листі з даними доступів до сервера або по доменному імені. Вводимо IP з листа в браузері, з метою упевнитися що все працює.

http://server_domain_or_IP

Отримуємо типову посадкову сторінку Nginx:
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

Крок 4 – Управління процесами Nginx

Перед операціями зупинки і перезапуску Nginx наполегливо рекомендуємо перевіряти коректність синтаксису його конфігураційних файлів за допомогою такої команди:

nginx -t

Якщо після виконання команди ви отримаєте наступний висновок:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

То можна сміливо переходити до виконання операцій перезапуску Nginx`a.

Після того, як ми запам’ятали це сакральне правило, вивчимо необхідні базові команди з управління веб-сервером. Для зупинки Nginx виконайте:

systemctl stop nginx

Щоб запустити використовуємо:

systemctl start nginx

Щоб перезавантажити:

systemctl restart nginx

Для оновлення налаштувань (в поточній сесії) введіть команду:

systemctl reload nginx

По дефолту з запуском сервера відбувається автоматичне завантаження Nginx. Щоб відключити автоматичний запуск, виконайте:

systemctl disable nginx

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

systemctl enable nginx

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

systemctl is-enabled nginx

Крок 5 – Налаштування віртуальних хостів

На веб-сервері Nginx є можливість використання віртуальних хостів (або по-іншому блоки server) для розділення налаштувань і створення потрібної кількості доменів на одному сервері.
Nginx по дефолту виділяє єдиний активний віртуальний хост для обслуговування каталогу /var/www/html. У разі, якщо необхідно розміщувати більше одного сайту, необхідно додати нові віртуальні хости. Додамо окрему кореневу директорію для нашого нового домену.
Створіть каталог ваш_домен, скориставшись прапором -p для додавання батьківських каталогів:

mkdir -p /var/www/ваш_домен/html

Задамо власника кореневої директорії домену:

chown -R root: /var/www/ваш_домен/html

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

cd /var/www/ваш_домен/html
find ./ -type f -exec chmod 644 {} \;  -print && find ./ -type d -exec chmod 755 {} \;  -print

Це встановить цифрові права 644 на файли та 755 на директорії у /var/www/ваш_домен/html.

Після перевірки створюємо шаблон сторінки index.html в редакторі vim:

vim /var/www/ваш_домен/html/index.html

Внесіть у файл:

<html> 
<head>
<title> Добро пожаловать на ваш_домен!</title> 
</head> 
<body> 
<h1>Success! VirtualHost для ваш_домен работает </h1> 
</body> 
</html>

Зберігаємо зміни і виходимо.

Крок 6 – Налаштування та адміністрування серверних блоків

Для обслуговування контенту Nginx створюємо файл конфігурації віртуального хоста з вірними директивами. Створимо новий файл:

/etc/nginx/sites-available/ваш_домен

vim /etc/nginx/sites-available/ваш_домен

Внесіть у файл конфігурації зазначені рядки. Вони відповідають стандартним налаштуванням VirtualHost’а, але мають вірний домен і каталог:

server {
listen 80;
listen [::]:80; 
root /var/www/ваш_домен/html; 
index index.html index.htm index.nginx-debian.html; 
server_name ваш_домен www.ваш_домен; 
location / { try_files $uri $uri/ =404;
} 
}

Зверніть увагу, що root містить шлях нового каталогу, а server_name – новий домен, ваш_домен. Зберігаємо внесені зміни і виходимо з редактора. Активуйте файл, вказавши символьне посилання в каталозі sites-enabled:

ln -s /etc/nginx/sites-available/ваш_домен /etc/nginx/sites-enabled/

На даному етапі ви маєте два віртуальних хоста, які обслуговують запити клієнтів на базі директив listen і server_name:

  • ваш_домен обслуговуватиме запити для www.ваш_домен і ваш_домен.
  • default відповідатиме на запити по порту 80, якщо вони не відповідають іншим віртуальним хостам.

Щоб уникнути нестачі пам’яті, через додавання додаткових імен, редагуємо значення у файлі /etc/nginx/nginx.conf. Відкриваємо файл:

vim /etc/nginx/nginx.conf

Розкоментуємо рядок server_names_hash_bucket_size, прибравши #:

... 
http { 
... 
server_names_hash_bucket_size 64; 
... 
} 
...

Перевіряємо коректність файлу конфігурації Nginx:

nginx-t

Зберігаємо корективи і виходимо. Зміни вступлять в силу після перезавантаження Nginx:

systemctl restart nginx

Як результат, ваш сайт стане обслуговуватися Nginx`ом. Перевірити коректність налаштувань ​​можна за посиланням http://ваш_домен.

Крок 7 – Базові каталоги і файли Nginx

Контент – вміщує контент сайту. Стандартно в ньому зберігається посадкова сторінка. У файлі конфігурації Nginx ви можете вносити зміни по каталогу.

Налаштування сервера

/etc/nginx

Каталог налаштувань nginx (тут знаходяться всі конфігураційні файли).

/etc/nginx/nginx.conf

Основний конфігураційний файл Nginx, містить глобальні налаштування веб-сервера.

/etc/nginx/sites-available

Каталог, що включає в себе блоки server (віртуальні хости) по кожному сайту окремо. Щоб Nginx обробляв ці блоки, потрібно розмістити посилання на них в каталозі sites-enabled. Зазвичай вживається для налаштування віртуальних хостів.

/etc/nginx/sites-enabled/

Каталог, який зберігає включені блоки server. Для активації блоку, потрібно створити символьне посилання на файл, розміщений в каталозі sites-available.

/etc/nginx/snippets

Містить фрагменти налаштувань (потенційно повторювані сегменти конфігурації).

Логи

/var/log/nginx/access.log

Лог зберігає запити, які надходять до веб-серверу Nginx (можливо задати іншу поведінку).

/var/log/nginx/error.log

Відображає повідомлення про помилки Nginx .

Висновок

У цьому гайді ми розібрали основні поради і рекомендації з налаштування web-сервера Nginx після встановлення. Nginx готовий до обслуговування контенту вашого сайту.

Telegram Hostpro

Наш телеграм

з важливими анонсами, розіграшами й мемами

Приєднатися

Можливо, вас зацікавить

Причини виникнення помилки 502. Як її виправити?

Причини виникнення помилки 502. Як її виправити?

Помилки 5хх означають проблеми на боці сервера. Якщо говорити конкретно про помилку 502, то...

Ruslan Holovatiuk | Оновлено: 30.10.2024

Причини виникнення помилки 403. Як виправити?

Причини виникнення помилки 403. Як виправити?

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

Ruslan Holovatiuk | Оновлено: 23.10.2024

Причини виникнення помилки 508. Як виправити?

Причини виникнення помилки 508. Як виправити?

Якщо коротко, помилка 508: Resource Limit Is Reached зазвичай означає, що ваш обліковий запис...

Ruslan Holovatiuk | Оновлено: 15.10.2024

Як вставити картинку в HTML й оптимізувати її для кращого ранжування в Google

Як вставити картинку в HTML й оптимізувати її для кращого ранжування в Google

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

Diana Honcharenko | Оновлено: 26.09.2024