- Сервер Linux
- Docker и Docker compose установлены на сервере
- Корень или пользователь с разрешениями sudo
Если у вас есть все это, позвольте нам погрузиться в.
Что такое Nginx Proxy Manager?
Nginx Proxy Manager (NPM) - это система управления обратным прокси, работающая на Docker. NPM основан на сервере Nginx и предоставляет пользователям чистый, эффективный и красивый веб-интерфейс для упрощения управления. Инструмент прост в настройке и не требует, чтобы пользователи знали, как работать с серверами Nginx или SSL-сертификатами. NPM - это инструмент с открытым исходным кодом, поддерживаемый разработчиками со всего мира. Он хорошо подходит для небольших серверных сред и частных лабораторий. В этом руководстве мы расскажем, как развернуть прокси-менеджер Nginx:
Установка Docker и SQLite
Nginx Proxy Manager работает как докер-контейнер; таким образом, на сервере должны быть установлены Docker и docker-compose. Для простоты я только проиллюстрирую, как установить Docker на Ubuntu. Пожалуйста, обратитесь к документации Docker, чтобы узнать, как настроить его в других системах. Чтобы установить Docker в Ubuntu, начните с удаления старых установок Docker. Пропустите это, если ничего не доступно.
sudo apt-get удалить docker docker-engine docker.io containerd runcЗатем установите репозиторий и все зависимости с помощью команд:
sudo apt-get updatesudo apt-get install apt-transport-https ca-сертификаты curl gnupg lsb-release -y
Добавьте GPG-ключ репозитория Docker:
curl -fsSL https: // скачать.докер.com / linux / ubuntu / gpg | sudo gpg --dearmor -o / usr / share / keyrings / docker-archive-keyring.gpgЗатем добавьте стабильный репозиторий, используя команду echo как:
echo "deb [arch = amd64, подписанный = / usr / share / keyrings / docker-archive-keyring.gpg] https: // скачать.докер.com / linux / ubuntu \$ (lsb_release -cs) стабильный "| sudo tee / etc / apt / sources.список.д / докер.список> / dev / null
Наконец, обновите репозитории и установите докер с помощью команд:
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose -yТеперь запустите докер и включите при запуске:
sudo systemctl включить докер.услугаsudo systemctl запустить докер.услуга
sudo systemctl включить containerd.услуга
Установить SQLite
Следующим шагом будет установка базы данных SQLite, которую мы будем использовать для запуска NPM. Стоит отметить, что вы также можете использовать базу данных MySQL.
Развернуть NPM на Docker
Чтобы развернуть Nginx Proxy Manager, нам нужно создать файл docker-compose для запуска Docker и инициализации контейнера. Чтобы узнать больше о файле компоновки Docker и о том, как он работает, рассмотрите ссылки на ресурсы, указанные здесь. Я настоятельно рекомендую вам создать файл docker-compose в каталоге, у которого есть полные разрешения.
nano docker-compose.ямлЗатем добавьте следующие строки в файл создания, сохраните и закройте.
версия: "3"Сервисы:
приложение:
изображение: 'jc21 / nginx-proxy-manager: последний'
перезапуск: всегда
порты:
# HTTP-порт
- '80: 80'
# Порт HTTPS:
- '443: 443'
# Интерфейс администратора
- '81: 81 '
среда:
DB_SQLITE_FILE: "/ data / npm.sqlite "
объемы:
- ./ данные: / данные
- ./ letsencrypt: / и т.д. / letsencrypt
Наконец, запустите команду docker-compose как:
docker-compose up -dЭто развернет стек из образа NPM, указанного в файле docker-compose. Результат создания:
Создание сети "debian_default" с драйвером по умолчаниюПолучение приложения (jc21 / nginx-proxy-manager: последняя версия)…
последнее: получение из jc21 / nginx-proxy-manager
801bfaa63ef2: Извлечение завершено
7927cd3bbe4c: Потяните завершено
f53b85628da5: Вытягивание завершено
e834c30791f9: Вытягивание завершено
6b68b3708dd5: Вытягивание завершено
963fe519b5fd: Извлечение завершено
37e54d057f10: Вытягивание завершено
-------------------------------------
Дайджест: sha256: b33aab798a6150ba7dd238d36936d0882a312c983a0b3eb261a6dcbd5e6a3425
Статус: загружено более новое изображение для jc21 / nginx-proxy-manager: latest
Создание debian_app_1… выполнено
Доступ к пользовательскому интерфейсу NPM
После создания и запуска вы можете войти в интерфейс, используя IP-адрес и порт, указанные в файле docker-compose. В этом случае порт 81.
http: // IP: 81
Было бы лучше, если бы вы приземлились в пользовательском интерфейсе входа в NPM. Введите имя пользователя и пароль как:
[email protected] и changeme соответственно.
При первом входе в систему вам необходимо обновить данные администратора.
После обновления всех сведений о пользователе вы попадете на главную панель управления, где сможете настроить свои прокси-хосты:
Работа с NPM
Установив и убедившись, что прокси-менеджер запущен, мы можем добавить прокси-хост, чтобы открыть службу, работающую на сервере. Перейдите к Hosts - Proxy Hosts и нажмите Add Proxy Host.
Выберите схему, например HTTP или HTTPS. Если сервис, который вы хотите предоставить, не поддерживает трафик HTTPS, придерживайтесь HTTP. Затем добавьте доменные имена, имя хоста пересылки и IP-адрес. Вы также можете выбрать Блокировать распространенные эксплойты для дополнительной безопасности.
После того, как вы предоставили услугу, попробуйте получить к ней доступ, используя указанное имя хоста или IP-адрес и порт. Эта услуга должна быть доступна. Вы также можете управлять прокси в списке хостов прокси.
Список доступа NPM
В некоторых случаях нам может потребоваться предоставить приложение или службу в списке прокси-серверов NPM для определенных IP-адресов. Чтобы настроить это, вы можете использовать список доступа NPM.
Перейдите к списку доступа и нажмите Добавить список прокси. Здесь дайте им имя списка доступа; вы также можете выбрать "Удовлетворительно".
На вкладке авторизации укажите имена пользователей и пароли, которые вы будете использовать для входа в сервис.
Перейдите на вкладку «Доступ» и добавьте IP-адреса, с которых вы хотите разрешить соединения, и запретить все остальные.
Чтобы прикрепить список доступа к определенному веб-приложению, перейдите в Hosts - Proxy Host и выберите свой хост. Нажмите Edit и установите список доступа, как определено выше.
Предоставление сертификатов SSL
NPM также позволяет предоставлять сертификаты SSL для различных доменных имен. Перед добавлением доменного имени в положение SSL убедитесь, что домен указывает на прокси-сервер NPM.
Перейдите к сертификатам SSL и нажмите Добавить сертификат SSL. Укажите доменные имена и адрес электронной почты для Let's Encrypt. Наконец, примите условия использования и сэкономьте. Вы также можете добавить вызов DNS, но я не буду рассматривать его в этом руководстве.
Это создаст новый доверенный сертификат SSL.
Настроить домашнюю страницу
Вы также можете настроить веб-страницу по умолчанию для сервера NPM. Нажмите «Настройки» - «Сайт по умолчанию» и выберите «Изменить». Вы можете выбрать отображение ОШИБКИ 404, перенаправления на новый адрес или создания настраиваемой страницы.
Например, ниже приведен HTML-код, показывающий 403 Forbidden.
ИСТОЧНИК: CodePen https: // codepen.io / blecaf / pen / NLoEPY
Заключение
В этом руководстве рассматривается установка и развертывание диспетчера прокси Nginx на сервере Ubuntu, на котором запущен Docker. Затем мы рассмотрели, как настроить NPM и добавить хосты в прокси-менеджер.
Помните: постоянное экспериментирование - ключ к мастерству, поэтому экспериментируйте!