Встановлення Nginx Proxy Manager – 2-хвилинний посібник зі встановлення
Наразі ваші сервіси працюють за непристойними адресами, наприклад 192.168.1.50:8080. Менеджер проксі-сервера Nginx перетворює їх на чисті імена, наприклад app.yourdomain.com, за допомогою безкоштовного протоколу HTTPS, який встановлюється за допомогою одного файлу Docker Compose і керується з простої веб-панелі замість файлів конфігурації, написаних від руки.
📑Розділи
- Що робить зворотний проксі - одні двері для всіх ваших служб
- Що вам потрібно перед початком — Docker, домен і доступні порти
- Перш ніж будь-що інсталювати, направте DNS свого домену на сервер
- Створіть папку та файл docker-compose.yml
- Запустіть Nginx Proxy Manager однією командою
- Перший вхід – крок адміністратора, який усі помиляються
- Створіть свій перший проксі-сервер, поле за полем
- Отримайте безкоштовний сертифікат Lets Encrypt HTTPS і ввімкніть Force SSL
📋 Огляд і покроковий посібник
Що вам потрібно перед початком
Перш ніж запрацює Nginx Proxy Manager (NPM), мають існувати три речі. По-перше, сервер або ПК під керуванням Linux із уже встановленими та працюючими Docker і Docker Compose — NPM працює як контейнер, а не як звичайна програма. По-друге, доменне ім’я, DNS якого можна редагувати, оскільки кожна служба отримує власний субдомен. По-третє, ваш маршрутизатор або хмарний брандмауер повинен мати можливість перенаправляти порти 80 і 443 на цю машину.
Спочатку направте DNS свого домену на сервер
NPM направляє трафік за іменем, а Lets Encrypt видає сертифікати лише для імен, які підтверджено вказують на вашу машину, тому ім’я має бути визначено, перш ніж створювати щось на ньому. У своєму реєстраторі або хості DNS додайте запис A: ім’я – це лише слово субдомену (наприклад, app), а значення – загальнодоступна IP-адреса вашого сервера. Кожна служба отримує власний запис, і всі вони можуть вказувати на ту саму IP-адресу - NPM розділяє служби пізніше за іменами. Під час тестування встановіть короткий TTL, наприклад 300 секунд, щоб помилки зникали за хвилини, а не за години.
Доведіть це, перш ніж продовжити: переконайтеся, що ім’я розпізнає вашу загальнодоступну IP-адресу із зовнішньої мережі (наприклад, з вашого телефону з вимкненим Wi-Fi). Запит на сертифікат проти пошкоджених DNS-затрат. Спроби Lets Encrypt і повторювані помилки можуть обмежити вашу швидкість на години. Порядок має значення: DNS спочатку, проксі-хост другий, сертифікат третій.
Створіть папку та створіть файл
Створіть папку для NPM на сервері та збережіть у ній наведений нижче файл як docker-compose.yml. Цей єдиний файл є повною інсталяцією. Назва зображення є офіційним зображенням спільноти. Порти 80 і 443 — це загальні двері, порт 81 — панель адміністратора, а два томи — це місце, де живе вся ваша настройка: ./data містить базу даних із усіма вашими проксі-хостами, а ./letsencrypt — ваші сертифікати. Втративши ці дві папки, ви втратите всі налаштування — створіть їх резервну копію, коли все запрацює.
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Рядок restart: unless-stopped повертає NPM автоматично після перезавантаження.
Запустіть Nginx Proxy Manager
З цієї папки виконайте команду запуску. Docker завантажує зображення та запускає контейнер у фоновому режимі.
docker compose up -d
Перевірте, чи працює:
docker ps
Ви повинні побачити контейнер із портами 80, 443 і 81. На невеликому сервері перший запуск займає хвилину або дві, поки створюється база даних. Якщо контейнер продовжує перезапускатися, журнали показують причину простою мовою:
docker compose logs
У дев’яти випадках із десяти цикл перезапуску – це порт, який уже використовується чимось іншим на хості – як правило, старим веб-сервером, який все ще працює.
Перший вхід - негайно захистіть обліковий запис адміністратора
Відкрийте панель адміністратора в браузері у вашій мережі:
http://your-server-ip:81
Зробіть це на першій хвилині. Залежно від збірки, NPM або просить вас замінити добре відомі дані адміністратора першого входу вашою електронною поштою та надійним паролем, або — у новіших збірках без облікового запису за замовчуванням — особа, яка першою відкриє сторінку адміністратора, створює адміністратора. У будь-якому випадку правило те саме: налаштуйте свій власний обліковий запис адміністратора в момент запуску контейнера, перш ніж створювати щось інше, і використовуйте справжню поштову скриньку – електронні листи NPM, які стосуються проблем із сертифікатами.
Створіть свій перший проксі-хост
У NPM відкрийте Хости → Проксі-хости → Додати проксі-хост і заповніть форму одним реченням – «це ім’я відноситься до цієї внутрішньої служби»:
Доменні імена: app.yourdomain.com – точне загальнодоступне ім’я з кроку 2, яке вже має бути дозволено на вашому сервері.
Схема: http для більшості домашніх і офісних програм. Схема описує зв’язок між NPM і внутрішньою службою, а не те, що використовують відвідувачі – NPM обробляє публічне шифрування на дверях. Виберіть тут https, лише якщо внутрішня програма сама обслуговує HTTPS.
Ім’я/IP-адреса для пересилання: внутрішня адреса служби, наприклад 192.168.1.50.
Порт пересилання: порт, який служба фактично прослуховує, наприклад 8080 - не 80 або 443; це двері НПМ, а не служби.
Увімкніть Блокувати поширені експлойти, а потім збережіть. Негайно перевірте, відкривши ім’я в браузері — в ідеалі зі свого телефону з вимкненим Wi-Fi, щоб перевірити справжній публічний шлях.
localhost неправильний (у контейнері NPM localhost означає сам NPM) — використовуйте IP-адресу локальної мережі сервера з опублікованим портом або розмістіть обидва контейнери в одній мережі Docker і використовуйте назву контейнера.Отримайте безкоштовний сертифікат HTTPS Lets Encrypt
Робіть це лише після того, як звичайний хост із кроку 6 уже запрацює – HTTPS на зламаному хості надає вам зламаний хост із сертифікатом і вдвічі більше місць для пошуку помилки. Відкрийте той самий проксі-сервер, перейдіть на вкладку SSL, установіть для параметра SSL Certificate значення Request a new SSL Certificate, увімкніть Force SSL і HTTP/2 Support, погодьтеся з умовами використання Lets Encrypt і збережіть. Перезавантажте сайт - тепер у браузері має відображатися замок на https.
Як це працює: Lets Encrypt доводить, що ви контролюєте ім’я, запитуючи ваш сервер через публічний Інтернет на порт 80 показати одноразовий маркер (завдання HTTP-01). Ось чому DNS, що вказує на вас, і доступний порт 80 не підлягають обговоренню — якщо не вдасться жодного з них, запит завершиться невдачею, а помилка в налаштуваннях, а не в Lets Encrypt. Примусовий SSL автоматично перенаправляє кожного відвідувача http на https; без нього незашифровані двері залишаються відкритими поруч із зашифрованими.
🏷️Змінні та ключові слова пошуку тем
🎙️ Повна транскрипція — торкніться, щоб розгорнути
__TOK_34__
__TOK_35__
__TOK_36__
❓ Часті запитання
Чи на 100% безкоштовний цей посібник?
__TOK_37__
Чи можуть новачки дотримуватися цього посібника?
__TOK_38__
Де я можу поставити запитання, якщо я застряг?
__TOK_39__