Полное руководство: Установка Nginx Proxy Manager (NPM) на Proxmox VE и его использование
Это руководство проведет вас через процесс установки и настройки Nginx Proxy Manager (NPM) в виртуальной машине (VM) на Proxmox VE. NPM — это удобный веб-интерфейс для управления конфигурацией Nginx, позволяющий легко настроить обратный прокси, SSL/TLS сертификаты Let’s Encrypt и многое другое.
Предварительные требования:
- Proxmox VE: Установленный и работающий сервер Proxmox VE.
- Виртуальная машина (VM): Созданная VM с установленной операционной системой Debian или Ubuntu (рекомендуется). Минимальные требования: 2GB RAM, 40GB дискового пространства.
- Доменное имя: Доменное имя, которое вы будете использовать для доступа к вашим сервисам через NPM.
- Статический IP-адрес: Статический IP-адрес для вашей VM.
Шаг 1: Создание и настройка виртуальной машины (VM)
- Создайте новую VM в Proxmox VE. Выберите Debian или Ubuntu в качестве операционной системы.
- Выделите ресурсы: Рекомендуется выделить минимум 2GB RAM и 40GB дискового пространства.
- Установите операционную систему: Следуйте инструкциям на экране для установки Debian или Ubuntu.
- Настройте статический IP-адрес: После установки операционной системы настройте статический IP-адрес для вашей VM. Это можно сделать через Network Manager (GUI) или отредактировав файлы конфигурации сети (CLI).
Шаг 2: Установка Docker и Docker Compose
NPM работает в контейнере Docker, поэтому необходимо установить Docker и Docker Compose на вашу VM.
- Обновите список пакетов:
sudo apt update && sudo apt upgrade -y
- Установите необходимые зависимости:
sudo apt install curl gnupg-key ca-certificates lsb-release ufw -y
- Добавьте ключ GPG для Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- Добавьте репозиторий Docker:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] http://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
- Обновите список пакетов:
sudo apt update
- Установите Docker:
sudo apt install docker-ce docker-compose -y
- Добавьте пользователя в группу
docker:
sudo usermod -aG docker $USER
newgrp docker
- Проверьте установку Docker:
docker --version
docker compose version
Шаг 3: Установка Nginx Proxy Manager (NPM)
- Создайте директорию для данных NPM:
mkdir -p /opt/npm
cd /opt/npm
- Создайте файл
docker-compose.yml:
nano docker-compose.yml
- Вставьте следующую конфигурацию в
docker-compose.yml:
version: '3.8'
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- "80:80" # HTTP
- "443:443" # HTTPS
- "81:81" # Web UI (измените, если порт 81 занят)
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
image: Указывает образ Docker для NPM.restart: Автоматически перезапускает контейнер в случае сбоя.ports: Определяет порты, которые будут перенаправлены на контейнер.volumes: Монтирует директории для хранения данных и SSL/TLS сертификатов.
- Запустите NPM:
docker compose up -d
- Дождитесь запуска контейнера. Это может занять несколько минут. Проверьте статус контейнера:
docker ps
Шаг 4: Настройка Nginx Proxy Manager (NPM) через веб-интерфейс
- Откройте веб-браузер и перейдите по адресу
http://<IP-адрес_вашей_VM>:81. - Создайте учетную запись администратора. Укажите имя пользователя, пароль и адрес электронной почты.
- Настройте обратный прокси:
- Перейдите в раздел «Proxies Hosts».
- Нажмите кнопку «Add Proxy Host».
- Укажите доменное имя, которое вы будете использовать для доступа к вашему сервису (например,
myservice.example.com). - Укажите IP-адрес и порт вашего внутреннего сервиса (например,
192.168.1.10:3000). - Выберите схему подключения (HTTP или HTTPS).
- Нажмите кнопку «Save».
- Настройте SSL/TLS сертификаты Let’s Encrypt:
- Перейдите в раздел «SSL Certificates».
- Нажмите кнопку «Add SSL Certificate».
- Укажите доменное имя, для которого вы хотите получить сертификат (например,
myservice.example.com). - Выберите способ проверки домена (DNS Challenge или HTTP Challenge). Рекомендуется использовать DNS Challenge, если у вас есть доступ к настройкам DNS вашего домена.
- Нажмите кнопку «Save».
Шаг 5: Проверка работы NPM
- Откройте веб-браузер и перейдите по адресу
https://<доменное_имя>. Вы должны увидеть ваш внутренний сервис, доступный через обратный прокси с SSL/TLS сертификатом Let’s Encrypt.
Дополнительные советы:
- Регулярно обновляйте NPM: Выполните команду
docker compose pullиdocker compose up -dдля обновления контейнера до последней версии. - Используйте DNS Challenge для получения SSL/TLS сертификатов: Это более надежный способ проверки домена, чем HTTP Challenge.
- Настройте автоматическое обновление SSL/TLS сертификатов: NPM автоматически обновляет сертификаты Let’s Encrypt перед их истечением.
- Изучите документацию NPM: Документация NPM содержит подробную информацию о всех функциях и настройках: https://nginxproxymanager.com/
Это руководство предоставляет базовую информацию об установке и настройке Nginx Proxy Manager на Proxmox VE. Вы можете настроить NPM для различных задач, таких как балансировка нагрузки, кэширование и защита от DDoS-атак. Удачи!