add post nginx-proxy-manager
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,185 @@
|
||||
---
|
||||
slug: nginx-proxy-manager
|
||||
title: NGINX Proxy Manager
|
||||
description: NGINX Proxy Manager - сервис (WEB GUI) для управления конфигурацией NGINX
|
||||
image: ./nginx-proxy-manager-logo.png
|
||||
tags: [docker, homelab, nginx, proxy]
|
||||
date: 2022-01-08
|
||||
---
|
||||
|
||||
NGINX Proxy Manager - сервис (WEB GUI) для управления конфигурацией NGINX. Идет как готовый docker контейнер, в проекте реализовано максимально простое и удобное управление основным базовым функционалом NGINX.
|
||||
|
||||
[](/blog/nginx-proxy-manager)
|
||||
|
||||
<!--truncate-->
|
||||
## NGINX Proxy Manager
|
||||
|
||||
Open Source проект ссылки на [Github](https://github.com/NginxProxyManager/nginx-proxy-manager) и [Офф сайт](https://nginxproxymanager.com/)
|
||||
|
||||
Возможности:
|
||||
- Простой и удобный web интерфейс
|
||||
- Легкая настройка проксирования без редактирования nginx config файла
|
||||
- Управление пользователями, разрешения и журнал аудита
|
||||
- Возможность установить свои или сгенерировать SSL сертификаты
|
||||
- Контроль доступа, средства авторизации, разрешенные и запрещенные адрес листы.
|
||||
|
||||
Основное назначение это проксирование по URL домена.
|
||||
|
||||
Например имеются 3 домена:
|
||||
- akmalov.com
|
||||
- test.akmalov.com
|
||||
- lvl.akmalov.com
|
||||
|
||||
Все домены обращаются по одному внешнему IP на маршрутизатор
|
||||
Маршрутизатор перенаправляет все соединения которые идут на 80 или 443 порт на NGINX Proxy Manager
|
||||
NGINX в зависимости от домена перенаправляет на необходимый сервер, VM, Container в локальной сети. Подставляет сертификат, управляет разрешениями.
|
||||
|
||||
|
||||

|
||||
|
||||
### Установка NGINX Proxy Manager
|
||||
#### 1. Подготовка среды
|
||||
|
||||
Буду устанавливать на LXC Proxmox
|
||||
|
||||
- OS: Ubuntu 22.02
|
||||
- CPU: 2
|
||||
- RAM: 1 Gb
|
||||
- Disk: 10 Gb
|
||||
|
||||
Обновление пакетов и установка docker
|
||||
|
||||
```
|
||||
apt update && apt upgrade -y
|
||||
apt install -y docker.io docker-compose
|
||||
```
|
||||
|
||||
#### 2. Настройка docker-compose.yaml
|
||||
|
||||
```YAML
|
||||
version: "3"
|
||||
services:
|
||||
nginx-proxy-manager:
|
||||
image: 'jc21/nginx-proxy-manager:latest'
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '80:80' # HTTP port
|
||||
- '443:443' # HTTPS port
|
||||
- '81:81' # Admin web port
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
```
|
||||
|
||||
По умолчанию создается файловая база данных SQLite - `data/database.sqlite`
|
||||
Есть так же решения c использованием отдельной базы данных MySQL на офф.сайте.
|
||||
В моем случаи SQLite хватает с огромным запасом
|
||||
|
||||
Запуск контейнера
|
||||
```
|
||||
docker-compose up -d
|
||||
```
|
||||
После запуска контейнера, можно подключиться к панели администратора
|
||||
|
||||
<http://YOUR-IP:81/>
|
||||
|
||||
Логин и пароль по умолчанию
|
||||
```
|
||||
Email: admin@example.com
|
||||
Password: changeme
|
||||
```
|
||||
|
||||
При первом запуске предложит настроить админскую учетную запись и изменить пароль
|
||||
|
||||
### Настройка NGINX Proxy Manager
|
||||
Так выглядит изначально GUI главного экрана (Все по нулям т.к. ничего не добавляли еще)
|
||||

|
||||
|
||||
|
||||
SSL сертификаты есть возможность сгенерировать с помощью Let'Encrypt в одно нажатие или добавить свои сертификаты
|
||||

|
||||
|
||||
|
||||
|
||||
### Настройка Host Proxy NGINX
|
||||
Все также интуитивно понтяно, прописываю домен, порт, если нужно подставляю сертификат SSL для HTTPS
|
||||

|
||||

|
||||
|
||||
Для работы доменов из локальной сети необходимо в DNS домены которые добавлены в Proxy Host направлять на адрес NGINX Proxy Manager
|
||||
|
||||
В общем и целом этого хватает для решения задач которые описал выше. Хоть и конфиг был бы не такой сложной, но с помощью этого сервиса можно это сделать в несколько кликов.
|
||||
|
||||
## Дополнительные функции
|
||||
|
||||
Распишу еще кое какие полезные фичи, которые использую у себя
|
||||
|
||||
### Dashboard для nginx proxy manager
|
||||
|
||||
Проект отнсительно свежий и активно разрабаывается, выглядит интересно
|
||||
|
||||
[Ссылка на Git автора](https://github.com/xavier-hernandez/goaccess-for-nginxproxymanager)
|
||||
|
||||

|
||||
|
||||
Красивый графический вывод информации на основе логов, позволяет посмотреть статистику, оценить нагрузку. Написано на Go работает быстро, даже с большим объемом данных, не потребляет много ресурсов.
|
||||
|
||||
В docker-compose необходимо указать путь к логам от nginx proxy manager
|
||||
|
||||
|
||||
### Страница 404 для nginx proxy manager
|
||||
|
||||
Nginx позволяет вместо ошибки 404 сделать redirect на любой другой хост или даже указать свой HTML код
|
||||

|
||||
|
||||
|
||||
Воспользуюсь Redirect и сделаю красивую страницу для 404
|
||||
|
||||
[Ссылка на Docker Hub проекта](https://hub.docker.com/r/kale5/rickroll)
|
||||
|
||||

|
||||
|
||||
|
||||
Теперь вместо страницы ошибок он будет перенаправлять на этот URL, с качественным видео
|
||||
|
||||
### Итоговый docker-compose
|
||||
|
||||
В итоге конечный docker-compose у меня выглядит так:
|
||||
```YAML
|
||||
version: "3"
|
||||
services:
|
||||
nginx-proxy-manager:
|
||||
image: 'jc21/nginx-proxy-manager:latest'
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '80:80' # HTTP Port
|
||||
- '443:443' # HTTPS Port
|
||||
- '81:81' # Admin Web Port
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
|
||||
npm-monitoring:
|
||||
image: xavierh/goaccess-for-nginxproxymanager:latest
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Asia/Yekaterinburg
|
||||
- SKIP_ARCHIVED_LOGS=True #optional
|
||||
- EXCLUDE_IPS=127.0.0.1 #optional
|
||||
- LOG_TYPE=NPM
|
||||
ports:
|
||||
- '82:7880'
|
||||
volumes:
|
||||
- ./data/logs:/opt/log
|
||||
|
||||
error-page-404:
|
||||
image: 'kale5/rickroll:latest'
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '83:80'
|
||||
```
|
||||
|
||||
## Итоги
|
||||
Мне очень нравится этот сервис позволяет быстро легко поднять и настроить NGINX, каких-то проблем с ним не было, сам продлевает сертификаты, одним словом настроил и забыл и иногда только заходил и через web добавлял новые хосты в 2-3 клика.
|
||||
|
||||
Так же есть аналог - Traefik, на данный момент активно его изучаю, но там нет удобного интерфейса и вся настройка через конфиги, т.к. больше погружаюсь в автоматизацию и много сервисов которые надо динамически настраивать, больше упор именно на traefik идет.
|
||||
|
After Width: | Height: | Size: 117 KiB |
|
After Width: | Height: | Size: 578 KiB |
|
After Width: | Height: | Size: 73 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 17 KiB |