Графический конфигуратор для 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 | ✓ | ✕ |
Пример для операционной системы Ubuntu:
Внимание: Этот проект требует выполнения команд под root пользователями, что делает его уязвимым для злоумышленников. Поэтому настоятельно рекомендуется изменить пароль на сложный.
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
Перезагрузите компьютер
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
Для новых версий просто замените путь к версии.
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, поддерживающий платформы x86_64/arm64/arm v7, включающий Nginx и NginxWebUI для единого управления и работы Nginx.
Ubuntu:
apt install docker.io
CentOS:
yum install docker
docker pull cym1102/nginxwebui:latest
или
docker pull registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
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
Внимание:
При запуске контейнера используйте параметр --net=host
для маппинга всех портов текущего хоста.
Контейнер должен маппировать путь /home/nginxWebUI:/home/nginxWebUI
, где хранится вся информация проекта, включая базу данных, конфигурации Nginx, логи, сертификаты и прочее. При обновлении образа Docker данные проекта не потеряются. Не забудьте сделать резервную копию.
Параметр -e BOOT_OPTIONS
позволяет передать параметры запуска Java, такие как номер порта.
--server.port порт, на котором программа будет запущена, по умолчанию 8080
/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 .
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 с одной машины.
Предоставлено однострочное решение для синхронизации данных, позволяющее передать конфигурацию и сертификаты с одного сервера на другой.
Данная система предоставляет HTTP-интерфейсы, доступ к которым можно получить по адресу http://xxx.xxx.xxx.xxx:8080/doc.html, открыв страницу smart-doc.
Для вызова API требуется добавить токен в заголовок HTTP-запроса. Получение токена возможно только после активации права доступа к API для пользователя в административной панели, затем используя имя пользователя и пароль для получения токена.
Если забыт логин или не сохранился QR-код двухфакторной аутентификации, воспользуйтесь следующими инструкциями для восстановления пароля и отключения двухфакторной аутентификации:
java -jar /home/nginxWebUI/nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home указывает директорию проекта, при использовании контейнеров Docker это будет отображаемый каталог.
--project.findPass указывает, следует ли выводить имя пользователя и пароль.
При успешном запуске вы сможете восстановить и распечатать все пароли пользователей, а также отключить двухфакторную аутентификацию.
docker exec -it {ID} /bin/sh
Затем выполните команду:
java -jar /home/nginxWebUI.jar --project.findPass=true
При успешном запуске вы сможете восстановить и распечатать все пароли пользователей, а также отключить двухфакторную аутентификацию.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )