Як встановити 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:root /var/www/ваш_домен/html

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

chmod -R 755 /var/www/ваш_домен

Після перевірки створюємо шаблон сторінки 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

Наш телеграм

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

Приєднатися

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

Як отримати бекап сайту і відновити дані?

Як отримати бекап сайту і відновити дані?

Про те, що може призвести до втрати даних сайту, про всі нюанси бекапів та...

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

Що таке PIN-код підтримки в HostPro?

Що таке PIN-код підтримки в HostPro?

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

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

Як додати фавікон на WordPress сайт

Як додати фавікон на WordPress сайт

У цій статті ми розглянемо найактуальнішу інформацію, станом на початок 2024 року, як просто...

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

Як встановити WP-CLI. Шпаргалка з основними командами

Як встановити WP-CLI. Шпаргалка з основними командами

WP-CLI (WP Command Line Interface) – утиліта для роботи із сайтами на WordPress, яка...

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