Nginx ubuntu: встановлення та налаштування

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

Дві версії установки

Зазвичай вибирають дві версії Nginx Ubuntu з відкритим кодом-основну та стабільну. Основна версія представляє невелику частину повного пакету. Статус "Розробка та пробна версія" не означає, що основна вразлива, навпаки, вона досить стабільна. Її переваги: завжди можна попередньо випробувати оптимальні функції і новітні можливості. Недолік-ймовірність отримання помилок більше в порівнянні зі стабільною.

У останньої (повна версія Nginx Ubuntu) її функції і безпеку були проаналізовані за допомогою серії тестів і мають дуже високі показники. В результаті користувач отримує стабільний і надійний веб-сервер, який підходить для застосування в якості сервера електронної комерції.

Тип інсталяції Nginx

Новачкам потрібно правильно застосувати параметри інсталяції, щоб розгорнути сервер.

Існує кілька варіантів встановлення Nginx Ubuntu:

  1. З готового пакету Debian / Ubuntu.
  2. З готового пакету сховища Nginx.
  3. З вихідного коду.

Установка з готового пакета (Debian / Ubuntu) як з ядром, так і з модулем за замовчуванням виконується дуже легко разом з процесом оновлення автоматично. Процес здійснюється програмою, що складається зі стабільної версії і декількох опцій модуля.

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

Попередньо зібраний пакет

Якщо потрібна велика гнучкість, то установка Nginx з вихідних кодів-це правильний вибір. Всі модулі використовують в міру необхідності, можна змінити основний код. Виконання Nginx install Ubuntu з готового пакета:

Попередньо зібраний пакет

Для того щоб встановити цю схему за замовчуванням, перевіряють Ubuntu або Debian Web, щоб побачити, які модулі вбудовані в Full. Далі інсталюють ПО з попередньо зібраного пакету Repository.

ПЗ з попередньо зібраного пакету Repository

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

Алгоритм установки:

  1. Далі додають репозиторій Nginx за замовчуванням з пакета Ubuntu або Debian.
  2. Для цього визначають репозиторій у файлі пакета sources.list.
  3. Спочатку відкривають файл sources.list на консолі nano як редактор файлів.
  4. Після відкриття файлу додають репозиторій в нижній рядок із загальним шаблоном.
  5. Зберігають зміни, натиснувши Ctrl + x → Y → Enter.
  6. Після цього можна інсталювати Nginx звичайним способом.

Стабільна версія Nginx Ubuntu server буде встановлена в систему.

Де:

  • {ОС Linux} - Ubuntu або Debian;
  • {codename} - назва використовуваної ОС.

Кодове ім`я можна побачити в наступній таблиці.

Кодове ім`я

Код установки.

Код установки

Налаштування NGINX Ubuntu 18.04

В даний час найкращий спосіб встановити модель 18.04, це використовувати версію, включену в репозиторії Ubuntu.

Файли конфігурації NGINX зберігаються в / etc / nginx / conf.d/. Як правило, буде потрібно самостійний файл в цьому каталозі для кожного домену або субдомену.

Алгоритм установки NGINX в Ubuntu:

  1. Копіюють файл за замовчуванням.
  2. Замінюють example.com доменним ім`ям сайту або публічним IP.
  3. Відключають файл за замовчуванням, додавши .disabled до його імені.
  4. Відкривають файл в редакторі.
  5. Замінюють в директиві доменне ім`я Або IP сайту.
  6. Для готового контенту, наприклад, установки WordPress або статичних файлів, замінюють шлях в root-директиві на шлях до контенту сайту.
Алгоритм установки NGINX в Ubuntu

Тестування NGINX:

  1. Перевіряють конфігурацію на помилки.
  2. Перезавантажують версію.
  3. Переходять до IP Linode в браузері, після чого з`явиться сторінка NGINX.

Додавання нового сайту на сервер

ПЗ стека LEMP демонструє групу, яку можна використовувати для обробки динамічних сторінок і додатків. Внутрішні дані зберігаються в MySQL, а динамічні процеси обробляються PHP Ubuntu Nginx.

Вимога:

  1. Клієнти SSH, такі як Bitvise або Putty, з інструкціями щодо їх використання.
  2. Базові знання загальних команд Unix для SSH до сервера.
  3. Сервер або VPS з мінімальною оперативною пам`яттю 256 МБ (OpenVZ). Рекомендується використовувати 512 МБ, якщо використовується KVM або Xen.
  4. Ubuntu 16.04 між 32 або 64 бітами.

Передумова:

  1. Надає сервер Ubuntu.
  2. Встановлює повний LAMP (Ubuntu Nginx Apache, MySQL, Perl / PHP / Python) на сервер Ubuntu.

Створення веб-каталогу

Веб-каталоги-це списки або папки на сервері, де зберігаються або розміщуються всі файли. Вхід в нього виконують за допомогою Terminal, Putty і Bitvise.

Далі необхідний каталог. Нижче ця команда створює дві директорії для двох сайтів, наприклад, якщо потрібно додати тільки один сайт, просто вказують один раз, замість domain1.tld і domain2.tld прописують потрібний домен. Далі встановлюють власника каталогу на www-data і рекурсивно змінюють права доступу до каталогу. Розміщують наступний, після цього створюють тестовий файл index.html, зберегти та вийти з редактора, натиснувши Control + O, потім Cotrol + X.

Створення веб-каталогу

Створення блочного сервісу

Файл блоку сервера Nginx зберігається всередині, потім поміщають цю конфігурацію туди і замінюють» xxxx " своїм власним IPv4 або IPv6-адресою. Зберегти та вийти з редактора, натиснувши Control + O потім Control + X. Після цього виконують аналогічні дії для іншого сайту.

Створення блочного сервісу

Далі можна активувати кожен блок сервера. З метою безпеки редагують nginx.conf і активують опцію: "розмір хеш-пам`яті імен", видаляють символ коментаря (#). Натискають Control + O для збереження і Control + X для виходу з редактора. Тепер тестують конфігурацію і підтверджують Ok.

Нарешті, виконують reload або restart, щоб Сервіс перезавантажився. Потім налаштовують дані DNS-домену або редагують файл локального хоста на комп`ютері, щоб протестувати пакет. Запускають веб-браузер і пробують отримати доступ до VPS через доменне ім`я.

Розміщення HTTP-Сервера

Розміщення HTTP-Сервера

HTTP-сервер Nginx ( Engine-X) - найпопулярніший з аналогів, що використовуються в Інтернеті. Він легкий, стабільний, готовий до роботи, який може використовуватися будь-якою людиною для створення потужних і динамічних веб-сайтів. Він також може служити проксі-сервером, що робить його чудовим вибором для безпеки завантажених та популярних веб-сайтів.

Установка HTTP-сервера Nginx:

  1. Встановлюють сервер. Пакети можна отримати в програмному сховищі Ubuntu, все, що потрібно зробити, це запустити команду apt.
  2. Після того як сервер буде встановлений, налаштовують брандмауер для дозволу трафіку HTTP. За замовчуванням брандмауер Ubuntu не ввімкнено. У деяких випадках він включається автоматично з міркувань безпеки.
  3. Якщо брандмауер увімкнено, наведені однорядкові команди повинні дозволяти HTTP-трафік, як на порт 80, так і на порт 443. Якщо перевірити стан брандмауера, можна побачити, що HTTP Full дозволений з будь-якого місця, включаючи трафік v6.
  4. Відкривають доступ до сторінки веб-сайту Nginx за замовчуванням або переходять по IP сервера або хоста.
  5. При установці HTTP-сервера Nginx будуть створені додаткові папки. Вони містять файли конфігурації, налаштування та інші вищевказані каталоги, є найбільш використовуваними на сервері.

Використання зворотного проксі

Використання зворотного проксі

Зворотний проксі-це сервер, який знаходиться між внутрішніми програмами та зовнішніми клієнтами, перенаправляючи запити клієнтів. Хоча багато поширених додатків, таких як Node.js, можуть працювати як сервери самостійно, в NGINX є ряд розширених функцій балансування навантаження, безпеки і прискорення, цих функцій немає в більшості спеціалізованих програмах. Використання NGINX як зворотного проксі-сервера дозволяє додавати ці функції до будь-якої Програми.

Для цього використовується простий Node.js, щоб продемонструвати, як налаштувати NGINX як зворотний проксі-сервер.

Установка проксі:

  1. Ці кроки встановлюють Mainline в Ubuntu з офіційного сховища NGINX Inc. Для інших дистрибутивів потрібно ознайомитися з керівництвом адміністратора, щоб отримати інформацію про налаштування для виробничих середовищ.
  2. Відкрити / etc / apt / sources.list текстовий редактор і додають наступний рядок внизу.
  3. Замінюють codename в цьому прикладі на кодове ім`я встановленої версії.Наприклад, для Ubuntu Nginx php fpm з ім`ям Bionic Beaver прописують bionic.
  4. Імпортуйте ключ підпису пакета репозиторію та додайте його до apt.
  5. Переконуються, що сервер запущений і буде включений автоматично при перезавантаженні.

Приклад програми

Приклад програми

Використовують curl для завантаження сценарію встановлення, наданого NodeSource. Замінюють версію Node в curl-команді тієї, яку потрібно розмістити.

Запускають скрипт:

  1. Сценарій apt-get update запуститься автоматично, тому можна відразу встановити Node.js.
  2. Менеджер пакетів вузлів (NPM) буде розпакований разом із Node.js.
  3. Створюють каталог додатки.
  4. Ініціалізують додаток Node.js в каталозі.
  5. Приймають всі значення за замовчуванням при появі запиту.
  6. Встановлюють Express.js: npm install --save express.
  7. Використовують текстовий редактор для створення і додавання наступного контенту: app.js.
  8. Запускають додаток.
  9. В окремому вікні терміналу використовують curl, щоб переконатися, що по працює.

Налаштування Node.js

На цьому етапі можна налаштувати Node.js так, щоб він служив прикладом програми на загальнодоступному IP-адресі Linode, що дозволило б виставити його в Інтернеті. Натомість розділ виконує встановлення PHP Ubuntu Nginx для пересилання всіх запитів із загальнодоступного IP на сервер із прослуховуванням localhost.

Базова конфігурація для NGINX із зворотним проксі: створюють файл, замінюють в цьому прикладі example.com, домен ПЗ або публічна IP-адреса.

Запускають додаток

Директива proxy_pass-це конфігурація зворотного проксі. Вона вказує, що всі запити, які відповідають блоку розташування, в даному випадку кореневому шляху, повинні бути перенаправлені на порт 3000 на localhost із запущеним Node.js.

Процедура налаштування:

  1. Відключають або видаляють сторінку за замовчуванням Welcome to NGINX: sudo mv / etc / nginx / conf.d/default.conf /etc/nginx/conf.d/default.conf.disabled.
  2. Перевіряють конфігурацію: sudo nginx-t.
  3. Якщо про помилки не повідомляється, перезавантажують нову: sudo nginx-s reload.
  4. У браузері переходять до загальнодоступного IP-адресою Linode, з`явиться повідомлення Hello World!

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

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

Для простого додатка proxy_pass достатньо директиви. Однак для більш складних можуть знадобитися додаткові параметри. Наприклад, Node.js часто використовується для тих випадків, які вимагають багато взаємодій у реальному часі. Щоб пристосуватися, відключають функцію буферизації Nginx Ubuntu ssl. Можна змінити або додати заголовки, які пересилаються разом з проксі-запитами proxy_set_header. Ця конфігурація використовує вбудовану змінну $remote_addr для надсилання IP-адреси вихідного клієнта на проксі-хост.

Однією з переваг зворотного проксі-сервера є простота налаштування HTTPS із сертифікатом TLS. Certbot-це інструмент, який дозволяє швидко отримати безкоштовні сертифікати від Let`s Encrypt. Можна використовувати Certbot в Ubuntu 16.04, офіційний сайт містить Детальні інструкції по установці і застосуванню основних дистрибутивів. Після отримання сертифікатів через Certbot, він автоматично оновить файли для використання нового сертифіката.

Certbot запитає інформацію про сайт. Відповіді будуть збережені як частина сертифіката.

Налаштування Node.js

Certbot також запитає, чи потрібно автоматично перенаправляти HTTP-трафік на HTTPS. Рекомендується вибрати цю опцію. Після завершення роботи інструменту Certbot збереже згенеровані ключі і видані сертифікати в/etc/letsencrypt/live / $domain каталозі, де $domain ім`я домену, введене на етапі створення сертифіката Certbot.

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

Якщо на Linode налаштовано брандмауер, можна додати його правило, щоб дозволити вхідні та вихідні підключення до служби HTTPS. В Ubuntu UFW-це широко використовуваний і простий інструмент для управління правилами брандмауера.

HTTP-сервера на стороні сервера

Однією з вимог реалізації Програми або веб - сайту є наявність веб-або HTTP-сервера на стороні сервера, який виконує обробку. Останній встановлює двонаправлені або односпрямовані з`єднання з клієнтом і генерує відповідь на зроблені запити. Тому-це невід`ємна частина веб-інфраструктури.

Статистично Nginx-це зростаючий веб - сервер, який залучає все більше веб-майстрів у всьому світі. Порівняно з Apache та іншими веб-серверами, Nginx значно перевершує швидкість обробки одночасних сеансів, час відгуку та використання ресурсів. Це пов`язано з архітектурою та розумною обробкою з`єднань. Ще однією перевагою, яку пропонує Nginx, є асинхронна архітектура, яка покращує обслуговування одночасних з`єднань.

Статті на тему