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

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.

Після цього додають наступний ключ підпису, щоб гарантувати, що сховища та пакунки перелічено у зв 'язці ключів менеджера (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:

  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-сервер 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. Створюють каталог програми.
  2. Ініціалізують додаток Node.js у каталозі.
  3. Приймають всі типові значення під час запиту.
  4. Встановлюють Express.js: npm install --save express.
  5. Використовує текстовий редактор для створення та додавання наступного контенту: app.js.
  6. Запускають програму.
  7. У окремому вікні термінала використовують 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 запросить інформацію про сайт. Відповіді будуть збережені як частина сертифіката.

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

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

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

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

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