Nginx Proxy Manager установка на Docker/Proxmox

Апрель 30, 2021 - Время чтения: 3 минуты

Когда возникла необходимость публиковать несколько разных вебсервисов из локальной сети, искал решение, которое бы позволяло это делать, через простой и удобный интерфейс. В итоге нашел "Nginx Proxy Manager" - web ui для управления хостами в Nginx, а также позволяющий получать/обновлять сертификаты Let's Encrypt.

Ссылка на офсайт: https://nginxproxymanager.com/

Установка может быть произведена несколькими способами:

установка в docker описана неплохо на офсайте, по умолчанию ставится вместе с MYSQL, но можно вместо него использовать  Sqlite.

Для этого нужно изменить файл docker-compose.yml,следующим образом:

version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      # Public HTTP Port:
      - '8080:80'
      # Public HTTPS Port:
      - '443:443'
      # Admin Web Port:
      - '81:81'
    environment:
     # If you would rather use Sqlite uncomment this
      # and remove all DB_MYSQL_* lines above
       DB_SQLITE_FILE: "/data/database.sqlite"
      # Uncomment this if IPv6 is not enabled on your host
       DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

после чего запускаем

docker-compose up -d

Также можно установить в контейнер LXC на Proxmox. Опиcание и ссылка на установку тут.

UPD: недавно простая установка через скрипт который автоматически создает LXC контейнер с alpine сломалась, поэтому лучше использовать второй способ. А именно: создать вручную контейнер с Debian установить обновления, затем зайти внутрь контейнера и запустить там скрипт установки указанный тут

UPD2: еще один вариант со скриптом установки NPM есть тут (а также скрипты для других продуктов)

 Далее входим на Admin Web панель по адресу http://Your_IP:81 (вместо Your_IP подставляем IP адрес)

И настраиваем через веб интерфейс

Пример настройки:

Дополнительно необходимо на вашем маршрутизаторе пробросить порты 443 и 80 на адрес "Nginx Proxy Manager". Порт 443 будет использоваться для Reverse Proxy, а порт 80 для продления сертификатов Let's Encrypt.

Если вы публикуете наружу вебсервера по протоколу https, а http не используете, можно настроить чтобы по 80 порту не долбились боты. Для этого перейдите в раздел "Settings" нам в строке "Default Site" нажмите на три точки и выберите как будете обрабатывать обращения на неизвестные хосты. По умолчанию стоит "Congratulations Page" можно выбрать "Redirect" или "404 Page".

PS: Если хотите чтобы я вам точно ответил, пишите в Telegram, )

Полу(о)умный дом

Делаем вещи умнее...

Посетителей

41