Вы здесь

Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager)


Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager)

Всем привет! Наверняка многие задавались вопросом – как можно осуществить проброс портов так, чтобы извне, на одном внешнем IP адресе, стало доступно несколько сервисов, работающих по HTTP или HTTPS. Этот вопрос может быть особо актуальным для небольших офисов, или домашних лаб. Решается он поднятием реверс прокси.

Существует довольно большое число решений, от дорогущих, так сказать Enterprise Class, до совсем уж собранных на коленке – на голом Nginx или еще на чём то, без каких-либо панелей управления. Сегодня я хочу показать вам, довольно любопытный проект, которым я уже не первый год пользуюсь в своей домашней лабе, и к которому за время использования у меня не возникло ни одного вопроса. Это – ]]>Nginx Proxy Manager]]>.

Штука эта представляет из себя надстройку над Nginx, с очень приятным и интуитивным веб интерфейсом. Распространяется продукт в виде контейнеров Docker, за счёт чего установка занимает минут 5, и не требует практически никакого вникания, правок конфигов вручную и т.п.

И так. Давайте приступим к установке. Я ставил на Ubuntu Server 22.04.  

В первую очередь, традиционно обновим систему:

apt update
apt upgrade

Далее необходимо установить docker:

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce

И docker-compose – актуальную версию можно посмотреть ]]>на github]]>:

sudo curl -SL https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-linux-x86_64 -o /usr/libexec/docker/cli-plugins/docker-compose
sudo chmod +x /usr/libexec/docker/cli-plugins/docker-compose
sudo docker compose version

Далее, переходим к установке, непосредственно Nginx Proxy Manager. Создаём файл docker-compose.yml (т.к. это yml – отступы тут имеют значение, имейте ввиду):

nano docker-compose.yml
Содержимое:

version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

 

sudo docker compose up -d

Дожидаемся завершения, и переходим в браузере по адресу вашего сервера, порт 81.

Дефолтные имя пользователя и пароль - [email protected] и changeme

При первом входе, будет предложено изменить адрес почты и пароль

Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - первый вход

Предлагаю бегло пробежаться по интерфейсу.

На вкладке dashboard собрана обобщённая информация по вашим правилам.

Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - dashboard

При нажатии на плитку, попадаем в интерфейс управления. Основная, конечно, это Proxy Hosts - именно она отвечает за reverse proxy.

 


Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - proxy hosts

В Redirection hosts можно настроить перенаправление доменов.

 Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - redirection hosts

В Streams можно добавить потоки (может быть нужно, например, если хостите у себя какой-нибудь игровой сервер).

 Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - streams

В 404 hosts – можно указать кастомные страницы ошибки.

 


Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - 404 hosts

Во вкладке Hosts, по сути, идёт дублирование Dashboard.

В Access Lists – можно добавить правила доступа, например разрешить доступ только с определенных адресов, либо можно сделать дополнительную авторизацию при помощи Nginx для определенных адресов.

 Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - access lists

Во вкладке SSL Certificates можно управлять вашими SSL сертификатами.

 


Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - ssl certificates

Во вкладке users можно добавить дополнительных пользователей для управления системой.

 Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - users

В Audit logs – ведётся журнал действий администратора.

 


Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - audit logs

В settings можно настроить дефолтный сайт, который должен открываться – можно настроить что б открывался сайт управления реверс прокси, страница 404, редирект куда-нибудь, либо кастомная страница.

 


Как легко и непринуждённо сделать Reverse Proxy для ваших сайтов и не только (Nginx Proxy Manager) - settings

В общем и целом. Как я уже говорил, я не первый год пользуюсь данной системой, и работает она прекрасно, проблем у меня пока не возникло, за счёт простоты интерфейса, не нужно заморачиваться ни с сертификатами их перевыпуском, ни с конфигами Nginx.

Как по мне, то это практически идеальная система управления reverse proxy для дома или небольших организаций. Большущие спасибо, респект и уважуха разработчикам.

12 20

Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.


Если вам помогла статья, вы можете >>отблагодарить автора<<