Полная настройка Nginx Proxy Manager (NPM)
Эта инструкция проведет вас через процесс установки и настройки Nginx Proxy Manager, чтобы вы могли безопасно и удобно управлять обратным проксированием для ваших веб-приложений. Мы рассмотрим установку, базовую конфигурацию, добавление SSL сертификатов с помощью Let’s Encrypt и настройку нескольких проксированных сервисов.
Предварительные требования:
- Доменное имя: Вам потребуется доменное имя, которое вы будете использовать для доступа к вашим приложениям через NPM.
- Сервер: Необходим сервер (VPS или физический) с установленной операционной системой Linux (рекомендуется Ubuntu 20.04/22.04).
- Права root/sudo: Для выполнения большинства команд потребуется доступ с правами администратора.
Шаг 1: Обновление системы и установка необходимых пакетов
Подключитесь к вашему серверу через SSH и выполните следующие команды для обновления списка пакетов и установки необходимых зависимостей:
sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl unzip nginx
Шаг 2: Установка Docker и Docker Compose
NPM использует Docker для контейнеризации. Установите Docker и Docker Compose следующими командами:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker # Перезагрузите группу docker для текущего пользователя
sudo apt install docker-compose -y
Шаг 3: Загрузка и настройка NPM
- Создайте директорию для хранения файлов NPM:
mkdir -p /opt/npm cd /opt/npm - Клонируйте репозиторий NPM с GitHub:
git clone https://github.com/jc21/nginx-proxy-manager.git . - Отредактируйте файл
docker-compose.ymlдля настройки переменных окружения. Откройте его в текстовом редакторе (например, nano):nano docker-compose.yml - Найдите секцию
environment:и настройте следующие переменные:- DB_VOLUME: Укажите путь для хранения базы данных (по умолчанию
/data/db). - LOG_VOLUME: Укажите путь для хранения логов (по умолчанию
/data/logs). - NPM_ADMIN_EMAIL: Укажите ваш email адрес, который будет использоваться для учетной записи администратора.
- NPM_ADMIN_PASSWORD: Установите надежный пароль для учетной записи администратора.
environment: DB_VOLUME: /data/db LOG_VOLUME: /data/logs NPM_ADMIN_EMAIL: your_email@example.com NPM_ADMIN_PASSWORD: YourStrongPassword - DB_VOLUME: Укажите путь для хранения базы данных (по умолчанию
- Сохраните и закройте файл
docker-compose.yml.
Шаг 4: Запуск NPM
Запустите контейнеры NPM с помощью Docker Compose:
docker-compose up -d
Эта команда скачает необходимые образы Docker и запустит NPM в фоновом режиме. Подождите несколько минут, пока все контейнеры не запустятся.
Шаг 5: Доступ к веб-интерфейсу NPM
Откройте ваш браузер и перейдите по адресу http://<ваш_IP_адрес> или http://<ваше_доменное_имя>. Вы должны увидеть страницу входа в NPM. Используйте email адрес и пароль, которые вы указали в файле docker-compose.yml.
Шаг 6: Добавление проксированного сервиса (пример)
- После успешного входа в систему нажмите кнопку «Add Proxy Host».
- Заполните следующие поля:
- Domain Name(s): Укажите доменное имя или поддомен, который будет использоваться для доступа к вашему сервису (например,
app1.example.com). - Scheme: Выберите
httpилиhttpsв зависимости от протокола вашего приложения. - Forward Hostname / IP: Укажите IP адрес или доменное имя сервера, на котором работает ваше приложение (например,
192.168.1.100). - Forward Port: Укажите порт, на котором работает ваше приложение (например,
80). - Cache Assets: Оставьте включенным для кэширования статических ресурсов.
- Domain Name(s): Укажите доменное имя или поддомен, который будет использоваться для доступа к вашему сервису (например,
- Нажмите кнопку «Save».
Шаг 7: Добавление SSL сертификата с помощью Let’s Encrypt
- Перейдите на вкладку «SSL Certificates».
- Нажмите кнопку «Add SSL Certificate».
- Заполните следующие поля:
- Domain Name(s): Укажите доменное имя или поддомен, для которого вы хотите получить сертификат (например,
app1.example.com). - Email Address: Укажите ваш email адрес.
- Agree to the Let’s Encrypt terms of service: Поставьте галочку.
- Domain Name(s): Укажите доменное имя или поддомен, для которого вы хотите получить сертификат (например,
- Нажмите кнопку «Save». NPM автоматически запросит и установит SSL сертификат для вашего домена.
- Вернитесь на вкладку «Proxy Hosts» и отредактируйте ваш проксированный сервис.
- В секции «SSL Certificate» выберите только что созданный сертификат.
- Нажмите кнопку «Save».
Шаг 8: Перезапуск сервиса (если необходимо)
Если после добавления SSL сертификата сервис не работает, попробуйте перезапустить его в NPM.
Дополнительные советы и рекомендации:
- Регулярно обновляйте NPM: Проверяйте наличие новых версий NPM на GitHub и обновляйте их для получения последних исправлений безопасности и улучшений.
- Используйте надежные пароли: Установите сложные и уникальные пароли для учетной записи администратора и других сервисов.
- Настройте брандмауэр: Ограничьте доступ к вашему серверу только необходимыми портами (например, 80 и 443).
- Мониторинг логов: Регулярно проверяйте логи NPM для выявления возможных проблем.
- Используйте Docker Compose для управления несколькими сервисами: Вы можете добавить несколько проксированных сервисов в один файл
docker-compose.yml.
Эта инструкция предоставляет базовую настройку Nginx Proxy Manager. Вы можете настроить дополнительные параметры, такие как перенаправление HTTP на HTTPS, блокировку определенных IP адресов и многое другое. Обратитесь к официальной документации NPM для получения более подробной информации: https://nginxproxymanager.com/
Удачи в настройке!