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

OSCHINA-MIRROR/cym1102-nginxWebUI

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README_EN.md

Веб-интерфейс управления конфигурацией Nginx

Описание

Инструмент веб-конфигурирования Nginx

Группа QQ1: 1106758598

Группа QQ2: 560797506

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

Официальный сайт: http://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

Пожертвование через WeChat:

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

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

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

Веб-интерфейс управления Nginx не покрывает все функции Nginx, но охватывает около 90% ежедневных конфигураций Nginx. Если какие-то параметры конфигурации Nginx не поддерживаются платформой, вы можете использовать шаблоны пользовательских параметров для генерации уникальных параметров конфигурации в файле conf.

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

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

Адрес профессиональной версии: https://pro.nginxwebui.cn

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

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

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

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

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

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

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

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

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

Ubuntu:

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 : \bin директории установки JDK
Перезагрузите компьютер
  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/

Для новой версии просто замените версию в пути.

  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: использование других баз данных, если не указано, то используется встроенная H2, варианты включают MySQL

--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. Обратите внимание, что в конце команды добавлен символ &, указывающий, что образ Docker этого проекта был создан благодаря фоновым операциям проекта, включающим 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 для маппинга портов, так как внутренний Nginx может использовать любой порт, поэтому вы должны маппировать все порты.

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

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

    --server.port: порт, занятый сервером, если не указан, то по умолчанию Yöntem 8080

  4. Журналы хранятся по умолчанию в /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 можно настроить конфигурацию проекта nginx HTTP для перенаправления HTTP. По умолчанию будут предоставлены несколько часто используемых конфигураций; остальные конфигурации можно свободно добавлять и удалять. Вы можете проверять открытый лог для отслеживания и генерации логов.

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

Параметры проекта Stream nginx можно настраивать в конфигурации TCP параметров, но в большинстве случаев они не используются.

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

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

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

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

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

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

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

В управлении сертификатами, можно добавлять сертификаты, выпускать и продлевать их. После запуска периодического продления система автоматически будет продлевать сертификаты, срок действия которых скоро истечёт. Примечание: сертификаты выпускаются с помощью режима DNS плагина acme.sh и требуют использования вместе с aliKey и aliSecret от Alibaba Cloud.

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

Управление резервными копиями. Здесь можно просмотреть историю версий резервных копий Nginx.cnF. При возникновении ошибок в Nginx, можно выбрать откат к определённой версии истории.

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

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

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

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

Разработка интерфейса

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

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

smart-doc.png

Забыли пароль?

Если вы забыли свой пароль входа или не сохранили 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 )

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

Введение

Описание недоступно Развернуть Свернуть
MulanPSL-1.0
Отмена

Обновления (100)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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