Як налаштувати і використовувати Nginx Proxy Manager?

Коментарі: 0

Nginx Proxy Manager (NPM) відіграє важливу роль у сферах веб-розробки та системного адміністрування. Він дає змогу легко і без технічних знань налаштовувати зворотні проксі, встановлювати й автоматично оновлювати SSL-сертифікати та перенаправлення. Це робить його корисним як для користувачів-початківців, так і для професіоналів. Тому пропонуємо розглянути, що собою являє NPM, чим він відрізняється від базового Nginx проксі та які завдання допомагає вирішити.

Поняття та особливості Nginx Proxy Manager

Щоб сформувати чітке розуміння про цей інструмент, потрібно спочатку розібратися, що собою являє оригінальний Nginx, з яким його так часто плутають, а також що таке reverse proxy.

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

Nginx - це багатофункціональне ПЗ, яке використовується як зворотний і поштовий проксі, балансувальник навантаження і HTTP-кеш. Nginx Проксі Менеджер заснований на програмному коді вищезгаданого ПЗ і використовує його як свою базу. Він є надбудовою для керування зворотним типом проміжного сервера.

Різниця між Nginx Proxy Manager і Nginx

Крім базового коду і принципів роботи, цей Проксі Менеджер відрізняється від оригінального Nginx низкою ключових характеристик. Розглянемо їх нижче в порівняльній таблиці.

Характеристика Проксі Менеджер Nginx
Інтерфейс керування Надає візуальний інтерфейс, що спрощує налаштування проксі. Керується через командний рядок, із застосуванням Nginx proxy_pass - це директива, що потребує глибших технічних знань.
Управління SSL Завантаження та оновлення SSL-сертифікатів автоматизовано. Процес вимагає втручання з боку адміністратора.
Доступ до конфігурації Обмежений. Можливий безпосередньо через консоль.
Оновлення Нерегулярні. Регулярні апдейти та підтримка спільноти.
Функціональність Додаткові опції можуть бути доступні тільки в певних збірках. Від самого початку надає широкий набір інструментів, придатних для більш складних і нестандартних завдань.
Масштабованість Обмежений у застосуванні для великих і складних інфраструктур. Краще адаптований до масштабованих корпоративних рішень і високонавантажених систем.

Доступний функціонал Nginx Проксі Менеджер

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

  • Створення та керування проміжними серверами без редагування файлу конфігурації;
  • Просте налаштування зворотного проксування;
  • Вбудована опція Let's Encrypt для відстеження терміну дії SSL-сертифікатів і їхнього продовження без участі користувача;
  • Перегляд журналів і статистики роботи зворотного проксі;
  • Підтримка переспрямувань, керування доменними іменами та обробка різних типів HTTP-запитів; <Налаштування авторизації для обмеження доступу до мережевих ресурсів і підвищення рівня безпеки під час роботи з ними.

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

Приклади використання функцій Nginx Proxy Manager

Одним із кейсів є централізоване управління. ПЗ надає єдиний графічний інтерфейс, через який можна керувати:

  • всіма доменами;
  • сертифікатами безпеки;
  • параметрами зворотного проксі.

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

Додатково, за допомогою менеджера Nginx проксі можна істотно підвищити захист хмарних ресурсів і сервера завдяки кільком вбудованим механізмам, що включають:

  • шифрування трафіку між користувачем і сервером; фільтрацію IP-адрес;
  • застосування логіна і пароля для захисту окремих сайтів або директорій;
  • зворотне проксування як захист реальної IP-адреси.

Наприклад, компанія розміщує веб-додатки (сайт на WordPress, REST API, панель управління) на хмарному VPS. Щоб захистити їх від зовнішніх загроз і приховати архітектуру, DevOps-інженер налаштовує вищезгаданий інструмент.

Вимоги до встановлення

Встановлення та налаштування Nginx Proxy Manager можливе на всіх операційних системах. Для інсталяції та запуску потрібно:

  • від 1 Гб ОЗП;
  • 4-ядерний процесор і потужніший;
  • від 15 Гб вільного місця на жорсткому диску.

Також будуть потрібні права Адміністратора. Якщо ви авторизовані в системі як гість, пропонуємо вам перезавантажитися з підвищеними правами або отримати їх у власника ПК.

Покрокове налаштування Nginx Proxy Manager

  1. Якщо перейти на офіційний сайт розробника продукту, то першою рекомендацією буде завантаження та встановлення Docker і Docker-compose. Завантажуємо їх на свій ПК.

    1en.png

  2. Коли інсталяційні файли буде скачано, у Терміналі вводимо команду для інсталяції Docker:
    
    sudo apt install docker.io -y
    
    
  3. Тепер встановлюємо Docker-Compose:
    
    sudo apt install docker-compose -y
    
    
  4. Щоб перевірити, що компоненти встановлено, запускаємо команди:
    
    docker --version
    docker-compose --version
    
    
  5. Далі потрібно створити папку проксі менеджера. Якщо у вас встановлено Windows, то зробити це можна за допомогою меню правої кнопки миші. Для Linux команда буде такою:
    
    mkdir ~/npm && cd ~/npm
    
    
  6. У цій папці створюємо файл docker-compose.yml. Для Windows потрібно натиснути правою кнопкою миші і вибрати "Створити", "Блокнот". В ім'я файлу прописуємо вищевказане.

    2en.png

  7. Для Linux і Ubuntu використовуємо команду:
    
    nano docker-compose.yml
    
    
  8. В обох випадках для файлів використовуємо такий вміст:
    
    version: '3'
    services:
      app:
        image: 'jc21/nginx-proxy-manager:latest'
        restart: always
        ports:
          - '80:80'
          - '81:81'
          - '443:443'
        volumes:
          - ./data:/data
          - ./letsencrypt:/etc/letsencrypt
    
    
  9. Зберігаємо файл. Запускаємо контейнер командою:
    
    docker-compose up -d
    
    
  10. Відкриваємо браузер і вводимо адресу сервера і порт. У прикладі ми вказали 81. Якщо хочете використовувати інший порт, то вказуєте його.
    
    https://IP-адесс:порт
    
    
  11. Щойно сайт завантажиться, з'явиться вікно авторизації. Вводимо стандартні дані, які вказані на сайті розробника:
    
    Email: admin@example.com
    Пароль: changeme
    
    
  12. Їх система запропонує змінити після першого входу.

    3en.png

Встановлення менеджера для керування через Nginx проксі успішно завершено.

Налаштування Nginx Proxy Manager

Налаштування цього інструменту складається з трьох кроків:

  • Налаштування зворотного проксі;
  • Встановлення SSL-сертифіката;
  • Авторизація.

Розглянемо докладніше на практиці, як це виконати.

Налаштування проксі-сервера в NPM

Відкрийте вкладку "Proxy Hosts" і натисніть "Add Proxy Host". З'явиться невелике вікно, в якому потрібно заповнити такі поля:

  • Forward Hostname/IP - вказуємо IP-адресу або ім'я внутрішнього сервера (наприклад, 82.211.7.97).
  • Forward Port - порт, на який потрібно проксіровать трафік (наприклад, 80 або 50100).
  • Domain Names - ім'я вашого домену або тестове, наприклад, test.domain.com.
  • Scheme - тип протоколу http або https, залежно від того, яке з'єднання використовується між проксі та внутрішнім сервером.
  • Block Common Exploits - ставимо позначку, щоб увімкнути захист від поширених атак.
  • Websockets Support - якщо ваш сервіс використовує WebSocket.

4en.png

Налаштування сертифіката безпеки

Не закриваючи вікно з налаштування проксі, переходимо у вкладку "SSL". Виберіть "Request a new SSL Certificate" і відзначте галочками такі пункти:

  • Force SSL - щоб завжди перенаправляти на HTTPS;
  • HTTP/2 Support - для поліпшення продуктивності (опціонально);
  • Agree to Let's Encrypt Terms of Service - приймаємо умови використання безкоштовного сертифіката SSL.

Натисніть "Save". Сертифікат буде запитано та встановлено автоматично.

5en.png

Авторизація

Щоб створити новий список доступів у менеджері Nginx проксі, перейдіть у вкладку "Details". У вікні, що відкрилося, задайте ім'я списку, наприклад "users". Особливу увагу зверніть на параметр "Satisfy Any". Якщо він не активний, то доступ надаватиметься тільки в разі одночасного виконання всіх умов: як авторизації за логіном і паролем, так і відповідності IP-адресою. Це підвищує рівень захисту ресурсів.

6en.png

У вкладці "Authorization" вказуємо користувачів, яким хочете надати доступ. Для кожного потрібно задати логін і пароль. Це забезпечить базову HTTP-аутентифікацію при спробі входу на сайт.

7en.png

У вкладці "Access" можна вказати IP-адреси, для яких дозволено або заблоковано доступ. Це зручно, якщо необхідно обмежити доступ до сайту в рамках корпоративної політики компанії.

8en.png

Після створення списку доступу відкрийте налаштування потрібного проксі-хоста і в полі "Access List" виберіть щойно створений список. З цього моменту при спробі відкрити відповідний сайт користувачеві буде запропоновано ввести логін і пароль. Доступ буде відкрито тільки при дотриманні всіх вищевказаних умов.

Висновок

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

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

Коментарії:

0 Коментаріїв