Перейти до вмісту
    Без категорії / Nginx Proxy Manager: Легкий Реверс Проксі для Домашнього Сервера

    Nginx Proxy Manager: Легкий Реверс Проксі для Домашнього Сервера

    Оцініть цю публікацію!
    [Усього: 0 Середнє значення: 0]

    Запуск декількох сервісів на домашньому сервері (Plex, Nextcloud, Home Assistant) часто потребує налаштування реверс проксі, яке традиційно вимагає роботи з конфігураційними файлами Nginx – процес не для новачків.

    Контекст і проблема

    Домашні сервери, NAS, та самохостинг стають все більш популярними, адже дають повний контроль над даними та сервісами. Однак, більшість сервісів працюють на окремих портах (80, 443, 8080, 8096 тощо), що ускладнює доступ до них ззовні через один доменний ім’я. Наприклад, у мене було 5 сервісів, кожен з яких потребував окремого порту, що призводило до постійного редагування `nginx.conf` та ризику помилок.

    Без реверс проксі, користувачі змушені запам’ятовувати та вводити довгі URL-адреси з портами (наприклад, `yourdomain.com:8096`), що не зручно і не професійно. Налаштування Nginx вручну займає час, вимагає розуміння синтаксису конфігураційних файлів, і легко призводить до помилок, які можуть зробити сервер недоступним.

    Практична реалізація

    Nginx Proxy Manager (NPM) – це веб-інтерфейс, що дозволяє керувати Nginx реверс проксі без редагування конфігураційних файлів вручну. Він пропонує інтуїтивно зрозумілий інтерфейс для налаштування проксі, SSL сертифікатів (Let’s Encrypt інтеграція), та переадресації. Встановлення NPM відбувається дуже просто через Docker.

    docker run -d \
      -p 80:80 \
      -p 443:443 \
      -p 81:81 \
      -v /path/to/data:/data \
      -v /path/to/letsencrypt:/etc/letsencrypt \
      jc21/nginx-proxy-manager:latest
    

    Зверніть увагу на параметри: `-p 80:80` – мапує порт 80 контейнера на порт 80 хоста, `-p 443:443` – мапує порт 443, `-p 81:81` – порт для веб-інтерфейсу NPM. `-v` параметри монтують директорії для зберігання даних та SSL сертифікатів. Після запуску, відкрийте `http://your_server_ip:81` у браузері та створіть обліковий запис.

    В NPM веб-інтерфейсі, додайте новий проксі сервер, вкажіть доменне ім’я, upstream URL (адреса сервісу на внутрішньому сервері, наприклад `http://192.168.1.10:32400` для Plex), та порт. NPM автоматично налаштує Nginx конфігурацію і отримає SSL сертифікат від Let’s Encrypt.

    Типові помилки

    • Помилка 1: Контейнер не запускається. Перевірте, чи не конфліктують порти, чи достатньо ресурсів на сервері. Видаліть попередні спроби запуску контейнера та спробуйте ще раз. Перевірте, чи не блокує firewall доступ до портів 80 та 443.
    • Помилка 2: Не вдається отримати SSL сертифікат. Переконайтеся, що доменне ім’я правильно налаштовано і вказує на ваш сервер. Перевірте, чи не заблоковано запити до Let’s Encrypt вашим провайдером. Можливо, потрібно додати DNS TXT записи для верифікації.
    • Помилка 3: Сервіс не доступний через домен. Переконайтеся, що upstream URL вказано правильно. Перевірте, чи працює сервіс на внутрішньому сервері. Перевірте, чи немає помилок в логах Nginx Proxy Manager (доступні в веб-інтерфейсі).

    Результат

    Після налаштування NPM, я зміг надати доступ до п’яти сервісів через єдиний домен без редагування конфігураційних файлів Nginx. Це заощадило мені приблизно 30 хвилин на налаштування та усунення несправностей, а також значно спростило керування сервером. Зараз я можу налаштувати новий сервіс за 5 хвилин, замість 30.

    Спробуйте Nginx Proxy Manager сьогодні та позбавтеся від рутинної роботи з конфігураційними файлами!

    Залишити відповідь

    Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *