1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cym1102-nginxWebUI

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 23 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.03.2025 12:18 7e0694f

nginxWebUI

README.md версия на английском

Введение

Графический конфигуратор для nginx

QQ технический обмен группы 1: 1106758598

QQ технический обмен группы 2: 560797506

Электронная почта: cym1102@qq.com

Официальный сайт: https://www.nginxwebui.cn

Профессиональная версия: https://pro.nginxwebui.cn

Gitee: https://gitee.com/cym1102/nginxWebUI

GitHub: https://github.com/cym1102/nginxWebUI

Видео руководство: https://www.bilibili.com/video/BV18A4y1D7GZ

QR-код WeChat пожертвований

Описание функций

NginxWebUI — это графический инструмент управления конфигурациями Nginx, который позволяет быстро настраивать различные функции Nginx через веб-интерфейс. Это включает HTTP-перенаправление, TCP-перенаправление, обратное проксирование, балансировку нагрузки, сервер статических HTML-страниц, автоматическое получение и управление SSL-сертификатами и многое другое. После настройки можно сгенерировать файл nginx.conf, а также запустить и перезагрузить Nginx с использованием этого файла, что обеспечивает полный цикл управления Nginx графически.

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

Функциональность Nginx очень сложна, но NginxWebUI покрывает около 90% повседневной конфигурации Nginx. Для не покрытых конфигураций можно использовать шаблоны пользовательских параметров, чтобы создать уникальные параметры в файле конфигурации.

После установки этого проекта больше нет необходимости искать конфигурационные примеры онлайн, а также выполнять ручное получение и настройку SSL-сертификатов. Все, что вам нужно сделать, это добавлять, удалять, изменять и просматривать конфигурации прямо здесь.

Техническая информация

Данный проект основан на web-системе Solon, использует базу данных SQLite, поэтому на сервере не требуется установка каких-либо внешних баз данных.

Система использует Let's Encrypt для получения сертификатов, автоматизация процесса получения и продления сертификатов осуществляется с помощью скрипта acme.sh. Сертификаты, для которых включено автоматическое продление, будут продлеваться каждый день в 2 часа ночи. Продление будет выполняться только если срок действия сертификата составляет менее 60 дней. Поддерживается только Linux.

Добавление поддержки TCP/IP-перенаправления может потребовать переустановки некоторых старых версий Nginx, указывая параметр --with-stream при компиляции для установки модуля stream. Однако в Ubuntu 18.04 официально установленный Nginx уже включает этот модуль, поэтому переустановка не требуется. Если в системе настроены параметры TCP, она автоматически добавляет конфигурацию ngx_stream_module.so, если же они отключены, то эта конфигурация не добавляется, что максимизирует оптимизацию конфигурационного файла Nginx.

Различие между профессиональной и открытой версией

Профессиональная версия: https://pro.nginxwebui.cn

Функция Профессиональная версия Открытая версия
Базовая конфигурация параметров
Конфигурация параметров HTTP
Конфигурация обратного проксирования
Конфигурация параметров Stream
Конфигурация балансировки нагрузки
Шаблон параметров
Загрузка статического веб-сайта
Управление файлами паролей
Чёрный список IP
Получение сертификатов
Документация API
Удалённое управление
Объединённое управление узлами и группами
Объединённая синхронизация конфигураций узлов
Сбор данных узлов
Статистика состояния узлов
Конфигурация кэширования
Сбор логов Nginx
Просмотр логов Nginx
Статистика логов Nginx
Статистика трафика Nginx

Инструкции по установке JAR

Пример для операционной системы Ubuntu:

Внимание: Этот проект требует выполнения команд под root пользователями, что делает его уязвимым для злоумышленников. Поэтому настоятельно рекомендуется изменить пароль на сложный.

  1. Установите Java среду и Nginx

Ubuntu:

apt update
apt install openjdk-11-jdk
apt install nginx

CentOS:

yum install java-11-openjdk
yum install nginx

Windows:

Загрузите установочный пакет JDK https://www.oracle.com/java/technologies/downloads/
Загрузите Nginx http://nginx.org/en/download.html
Настройте переменные окружения JAVA
JAVA_HOME : путь к директории JDK
Path : путь к директории JDK\bin
Перезагрузите компьютер
  1. Скачайте последнюю версию JAR
Linux: mkdir /home/nginxWebUI/
       wget -O /home/nginxWebUI/nginxWebUI.jar https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.6/nginxWebUI-4.2.6.jar

Windows: используйте браузер для скачивания https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.6/nginxWebUI-4.2.6.jar до D:/home/nginxWebUI/nginxWebUI.jar

Для новых версий просто замените путь к версии.

  1. Запустите программу
Linux: nohup java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
Windows: java -jar -Dfile.encoding=UTF-8 D:/home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=D:/home/nginxWebUI/

Параметры (необязательные):

--server.port порт, на котором программа будет запущена, по умолчанию 8080--project.home каталог конфигурационных файлов проекта, где хранятся база данных, сертификаты, логи и прочее, по умолчанию /home/nginxWebUI/

--spring.database.type=mysql использование других баз данных, если не указано, используется SQLite

--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui URL базы данных

--spring.datasource.username=root имя пользователя базы данных

--spring.datasource.password=pass пароль пользователя базы данных

Внимание: В Linux команде добавьте &, чтобы программа работала в фоновом режиме.

Инструкции по установке Docker

Для данного проекта создан образ Docker, поддерживающий платформы x86_64/arm64/arm v7, включающий Nginx и NginxWebUI для единого управления и работы Nginx.

  1. Установите контейнер Docker

Ubuntu:

apt install docker.io

CentOS:

yum install docker
  1. Загрузите образ:
docker pull cym1102/nginxwebui:latest

или

docker pull registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
  1. Запустите контейнер:
docker run -itd \
  -v /home/nginxWebUI:/home/nginxWebUI \
  -e BOOT_OPTIONS="--server.port=8080" \
  --net=host \
  --restart=always \
  cym1102/nginxwebui:latest
  
или

docker run -itd \
  -v /home/nginxWebUI:/home/nginxWebUI \
  -e BOOT_OPTIONS="--server.port=8080" \
  --net=host \
  --restart=always \
  registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest

Внимание:

  1. При запуске контейнера используйте параметр --net=host для маппинга всех портов текущего хоста.

  2. Контейнер должен маппировать путь /home/nginxWebUI:/home/nginxWebUI, где хранится вся информация проекта, включая базу данных, конфигурации Nginx, логи, сертификаты и прочее. При обновлении образа Docker данные проекта не потеряются. Не забудьте сделать резервную копию.

  3. Параметр -e BOOT_OPTIONS позволяет передать параметры запуска Java, такие как номер порта.

--server.port порт, на котором программа будет запущена, по умолчанию 8080

  1. Логи по умолчанию находятся в /home/nginxWebUI/log/nginxWebUI.log

Кроме того, при использовании docker-compose конфигурация выглядит следующим образом:

version: "3.2"
services:
  nginxWebUi-server:
    image: cym1102/nginxwebui:latest
    volumes:
      - type: bind
        source: "/home/nginxWebUI"
        target: "/home/nginxWebUI"
    environment:
      BOOT_OPTIONS: "--server.port=8080"
    network_mode: "host"
    restart: always

или

version: "3.2"
services:
  nginxWebUi-server:
    image: registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
    volumes:
      - type: bind
        source: "/home/nginxWebUI"
        target: "/home/nginxWebUI"
    environment:
      BOOT_OPTIONS: "--server.port=8080"
    network_mode: "host"
    restart: always

Инструкции по сборке

Используйте Maven для сборки и упаковки

mvn clean package

Используйте Docker для создания образа

docker build -t nginxwebui:latest .

Настройка автозапуска

  1. Измените конфигурацию сервиса
vim /etc/systemd/system/nginxwebui.service
[Unit]
Description=NginxWebUI
After=syslog.target
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/nginxWebUI
ExecStart=/usr/bin/java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar
Restart=always

[Install]
WantedBy=multi-user.target

Затем выполните

systemctl daemon-reload
systemctl enable nginxwebui.service
systemctl start nginxwebui.service

Инструкции по использованию

Откройте http://xxx.xxx.xxx.xxx:8080 для входа на главную страницу

Введите описание изображения

Страница входа, первый раз открывается запрос на инициализацию аккаунта администратора

Введите описание изображения

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

Введите описание изображения

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

Введите описание изображения

В разделе конфигурации параметров TCP можно настроить параметры проекта Stream Nginx, большинство случаев не требуют этой настройки.

Введите описание изображения

В разделе обратного проксирования можно настроить функции обратного проксирования Nginx, включая SSL-функции. Вы можете загружать PEM-файлы и ключи непосредственно с веб-страницы или использовать сертификаты, созданные внутри системы. Также можно активировать перенаправление HTTP на HTTPS и HTTP/2 протокол.

Введите описание изображения

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

Введите описание изображения

В разделе загрузки статических HTML-файлов можно загружать ZIP-архивы HTML-файлов в определённые пути, после чего они становятся доступными для использования в меню управления обратным проксированием, что устраняет необходимость загрузки HTML-файлов в Linux.

Введите описание изображения

В разделе управления сертификатами можно добавлять сертификаты, получать и продлевать их. После активации автоматического продления система будет автоматически продлевать сертификаты, которые скоро истекут. Внимание: Получение сертификатов происходит с использованием DNS-метода acme.sh, который требует наличия ключей Aliyun (AliKey и AliSecret). Пожалуйста, заранее получите эти ключи.

Введите описание изображения

Резервное управление файлами, здесь можно просмотреть историю версий резервных копий файла nginx.cnf. В случае ошибок в работе Nginx можно выбрать откат к какой-либо из прошлых версий.

Изображение

Финальное создание конфигурационного файла conf, которое позволяет вручную его модифицировать. После завершения правок и проверки их корректности, можно заменить локальный файл conf, а также выполнить проверку и перезапуск. Можно выбрать создание одного файла nginx.conf или разделение конфигураций по доменам в папке conf.d.

ИзображениеУдалённое управление серверами, если используется несколько серверов с Nginx, все они могут быть установлены с помощью nginxWebUI; вход осуществляется через один из этих серверов, где можно добавить IP адреса других серверов вместе с учётными записями и паролями, что позволяет управлять всеми серверами Nginx с одной машины.

Предоставлено однострочное решение для синхронизации данных, позволяющее передать конфигурацию и сертификаты с одного сервера на другой.

Разработка API

Данная система предоставляет HTTP-интерфейсы, доступ к которым можно получить по адресу http://xxx.xxx.xxx.xxx:8080/doc.html, открыв страницу smart-doc.

Для вызова API требуется добавить токен в заголовок HTTP-запроса. Получение токена возможно только после активации права доступа к API для пользователя в административной панели, затем используя имя пользователя и пароль для получения токена.

Изображение

Восстановление пароля

Если забыт логин или не сохранился QR-код двухфакторной аутентификации, воспользуйтесь следующими инструкциями для восстановления пароля и отключения двухфакторной аутентификации:

  1. Установка при помощи JAR-файла, выполните команду:
java -jar /home/nginxWebUI/nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true

--project.home указывает директорию проекта, при использовании контейнеров Docker это будет отображаемый каталог.

--project.findPass указывает, следует ли выводить имя пользователя и пароль.

При успешном запуске вы сможете восстановить и распечатать все пароли пользователей, а также отключить двухфакторную аутентификацию.

  1. Установка при помощи Docker, сначала выполните команду для входа в контейнер Docker, где {ID} — ID вашего контейнера:
docker exec -it {ID} /bin/sh

Затем выполните команду:

java -jar /home/nginxWebUI.jar --project.findPass=true

При успешном запуске вы сможете восстановить и распечатать все пароли пользователей, а также отключить двухфакторную аутентификацию.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/cym1102-nginxWebUI.git
git@api.gitlife.ru:oschina-mirror/cym1102-nginxWebUI.git
oschina-mirror
cym1102-nginxWebUI
cym1102-nginxWebUI
master