Как настроить и использовать 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: [email protected]
    Пароль: 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 комментариев