Nginx Proxy Manager — это удобный инструмент для настройки reverse proxy с веб-интерфейсом. Он позволяет легко подключать домены, настраивать проксирование на внутренние сервисы и автоматически выпускать SSL-сертификаты. В этой статье показано, как настроить Nginx Proxy Manager и использовать его для работы с несколькими сайтами на одном сервере.
После установки Nginx Proxy Manager на ваш сервер перейдите по адресу панели администратора, указанному в письме после установки. Адрес имеет следующий формат:
http://{IP_вашего_сервера}:81
Открыв страницу, заполните поля:
После заполнения нажмите кнопку «Save».
После этого вы будете автоматически перенаправлены в панель управления Nginx Proxy Manager.
В данной статье для демонстрации возможностей Nginx Proxy Manager будут созданы три простых сайта на базе лёгких Nginx-контейнеров. Каждый сайт будет иметь собственный дизайн и содержимое и будет доступен через отдельный поддомен с SSL-сертификатом от Let’s Encrypt.
Это позволит наглядно продемонстрировать основные возможности Nginx Proxy Manager:
Далее будет показан полный процесс: от создания тестовых сайтов до их проксирования через Nginx Proxy Manager.
Создайте каталоги для трёх тестовых сайтов:
mkdir -p ~/nginx-demo/{site1,site2,site3}
Далее создайте HTML-страницы для каждого сайта.
cat > ~/nginx-demo/site1/index.html << 'EOF' <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Сайт 1 — Nginx</title> </head> <body style="background:#e3f2fd;"> <h1>Первый сайт</h1> <h2>Nginx #1</h2> <p>Проксируется через Nginx Proxy Manager</p> </body> </html> EOF
cat > ~/nginx-demo/site2/index.html << 'EOF' <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Сайт 2 — Nginx</title> </head> <body style="background:#e8f5e9;"> <h1>Второй сайт</h1> <h2>Nginx #2</h2> </body> </html> EOF
cat > ~/nginx-demo/site3/index.html << 'EOF' <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Сайт 3 — Nginx</title> </head> <body style="background:#f3e5f5;"> <h1>Третий сайт</h1> <h2>Nginx #3</h2> </body> </html> EOF
Запустите три Nginx-контейнера для каждого тестового сайта:
docker run -d --name nginx-site1 \ -p 8081:80 \ -v ~/nginx-demo/site1:/usr/share/nginx/html \ --restart unless-stopped \ nginx:alpine
docker run -d --name nginx-site2 \ -p 8082:80 \ -v ~/nginx-demo/site2:/usr/share/nginx/html \ --restart unless-stopped \ nginx:alpine
docker run -d --name nginx-site3 \ -p 8083:80 \ -v ~/nginx-demo/site3:/usr/share/nginx/html \ --restart unless-stopped \ nginx:alpine
Для каждого контейнера используется отдельный порт: 8081, 8082 и 8083 соответственно.
Для демонстрации полной настройки потребуется доменное имя, припаркованное к вашему VDS. Перейдите в панель управления аккаунтом: раздел Домены → Регистрация / Продление → кнопка «Припарковать».
После настройки тестовой среды проверьте работу сайтов, открыв в браузере IP вашего сервера с соответствующими портами:
В разделе Proxy Hosts нажмите кнопку «Add Proxy Host».
В открывшемся окне на вкладке Details заполните следующие поля:
Эти шаги нужно повторить три раза — для site1, site2 и site3.
Перейдите на вкладку SSL и выполните следующее:
Каждый сайт работает на своём поддомене, с отдельным SSL-сертификатом и собственным контентом. Nginx Proxy Manager без проблем обслуживает три независимых бэкенда одновременно.
Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из