инструмент веб-конфигурации nginx
Группа технического обмена QQ 1: 1106758598
Группа технического обмена QQ 2: 560797506
Электронная почта: [email protected]
Официальный адрес сайта: https://www.nginxwebui.cn.
Адрес профессиональной версии: https://pro.nginxwebui.cn.
Гите: https://gitee.com/cym1102/nginxWebUI
Гитхаб: 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. Вы также можете синхронизировать конфигурацию определенного сервера с другими серверами одним щелчком мыши, чтобы облегчить управление кластером.
Сам nginx имеет сложные функции. nginxWebUI не охватывает все функции nginx, но может охватывать 90% ежедневных функциональных конфигураций nginx. Для элементов конфигурации nginx, которые не поддерживаются платформой, вы можете использовать пользовательские шаблоны параметров для генерации уникальных параметров. файл конфигурации.
После развертывания этого проекта вам больше не нужно искать коды конфигурации в Интернете для настройки nginx. Вам больше не нужно вручную подавать заявку и настраивать сертификаты SSL. Вам нужно только добавлять, удалять, изменять и проверять этот проект, чтобы легко настроить и установить его. запустить нгинкс.
Этот проект основан на веб-системе Solon. База данных использует sqlite, поэтому нет необходимости устанавливать какую-либо базу данных на сервер.
Эта система применяется к сертификатам через Let's Encrypt и использует сценарий acme.sh для автоматического применения и продления. Сертификаты, которые позволяют продлить, будут обновляться каждый день в 2 часа ночи. Обновляются только сертификаты, возраст которых превышает 60 дней. выпущенные под Linux, поддерживаются.
При добавлении поддержки конфигурации пересылки TCP/IP некоторые более ранние версии nginx, возможно, потребуется перекомпилировать, и можно использовать модуль потока, добавив параметр –with-stream для указания установки. Однако в Ubuntu 18.04 nginx в официальной версии. В библиотеке программного обеспечения уже есть модуль потока. Перекомпиляция не требуется. Если в этой системе настроен элемент конфигурации tcp, элемент конфигурации ngx_stream_module.so будет введен автоматически. Если он не включен, он не будет введен для оптимизации. файл конфигурации ngnix в максимальной степени.
Адрес профессиональной версии: https://pro.nginxwebui.cn.
Функция | Профессиональная версия | Версия с открытым исходным кодом |
---|---|---|
Базовая конфигурация параметров | √ | √ |
конфигурация http-параметров | √ | √ |
Настройка обратного прокси | √ | √ |
Конфигурация параметров потока | √ | √ |
Конфигурация балансировки нагрузки | √ | √ |
Шаблон параметров | √ | √ |
Загрузка статической веб-страницы | √ | √ |
Управление файлами паролей | √ | √ |
Черный список IP-адресов | √ | √ |
Заявка на сертификат | √ | √ |
Документация по интерфейсу API | √ | √ |
Удаленное управление | √ | √ |
Единое управление узлами и группами | √ | × |
Унифицированная синхронизация файлов конфигурации узла | √ | × |
Сбор данных об узлах | √ | × |
Статистика статуса узла | √ | × |
Конфигурация кэша | √ | × |
сбор журналов nginx | √ | × |
просмотр журнала nginx | √ | × |
статистика журнала nginx | √ | × |
статистика трафика nginx | √ | × |
Если взять в качестве примера операционную систему Ubuntu,
Примечание. Этот проект требует запуска системных команд от имени пользователя root, что чрезвычайно легко может быть использовано хакерами. Обязательно измените пароль на сложный.
1. Установите среду Java и nginx.
Убунту:
apt update
apt install openjdk-11-jdk
apt install nginx
Центос:
yum install java-11-openjdk
yum install nginx
Окна:
下载JDK安装包 https://www.oracle.com/java/technologies/downloads/
下载nginx http://nginx.org/en/download.html
配置JAVA环境变量
JAVA_HOME : JDK安装目录
Path : JDK安装目录bin
重启电脑
2. Загрузите jar-файл последней версии.
Linux: mkdir /home/nginxWebUI/
wget -O /home/nginxWebUI/nginxWebUI.jar https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.5/nginxWebUI-4.2.5.jar
Windows: 直接使用浏览器下载 https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.5/nginxWebUI-4.2.5.jar 到 D:/home/nginxWebUI/nginxWebUI.jar
Если существует новая версия, вам нужно только изменить версию в пути.
3. Запустите программу
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, необязательно mysql
--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui URL-адрес базы данных
--spring.datasource.username=корневой пользователь базы данных
--spring.datasource.password=передать пароль базы данных
Обратите внимание, что команды Linux добавляют в конце амперсанд, указывающий, что проект работает в фоновом режиме.
В рамках этого проекта создан образ докера, который поддерживает платформу x86_64/arm64/arm v7, включая nginx и nginxWebUI, и интегрирует управление и работу nginx.
1. Установите среду Docker-контейнера.
Убунту:
apt install docker.io
Центос:
yum install docker
2. Вытащите изображение:
docker pull cym1102/nginxwebui:latest
或者
docker pull registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
3. Запустите контейнер:
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 для прямого сопоставления локального порта. Поскольку внутренний nginx может использовать любой порт, все порты на локальном компьютере должны быть сопоставлены.
Контейнеру необходимо сопоставить путь /home/nginxWebUI:/home/nginxWebUI. Все файлы данных проекта хранятся по этому пути, включая базы данных, файлы конфигурации nginx, журналы, сертификаты и т. д. При обновлении образа этот каталог можно использовать. убедитесь, что данные проекта не потеряны. Обратите внимание: Резервное копирование.
Параметр -e BOOT_OPTIONS может заполнять параметры запуска Java, и вы можете использовать этот параметр для изменения номера порта.
--server.port занимает порт. Если он не заполнен, по умолчанию он будет начинаться с порта 8080.
Другое: файл конфигурации при использовании 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. Другие необходимые конфигурации можно свободно добавлять, удалять, изменять и проверять. Вы можете включить отслеживание журналов для создания журнала. файлы.
Параметры потокового проекта nginx можно настроить в конфигурации параметров TCP, но в большинстве случаев в этом нет необходимости.
В обратном прокси-сервере вы можете настроить обратный прокси-сервер nginx, то есть функцию сервера. Вы можете включить функцию SSL. Вы можете напрямую загружать файлы pem и файлы ключей с веб-страницы или напрямую использовать сертификат, примененный в системе. включите функцию http to https, вы также можете включить протокол http2.
При балансировке нагрузки вы можете настроить функцию балансировки нагрузки nginx, которая является восходящей функцией. При управлении обратным прокси-сервером вы можете выбрать цель прокси-сервера в качестве настроенной балансировки нагрузки.
При загрузке статического файла HTML вы можете напрямую загрузить сжатый пакет HTML по указанному пути. После загрузки его можно использовать непосредственно в обратном прокси-сервере, что устраняет необходимость загрузки файлов HTML в Linux.
Сертификаты можно добавлять в управление сертификатами, а также выдавать и обновлять. После включения планового продления система автоматически продлит сертификат, срок действия которого истекает. Примечание. Сертификат выдается с использованием режима DNS файла acme.sh. Для использования требуется сотрудничество с aliKey и aliSecret от Alibaba Cloud. Сначала подайте заявку на 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.
Вызов интерфейса должен добавить токен в заголовок http-запроса. Чтобы получить токен, вам необходимо сначала открыть разрешение на вызов интерфейса пользователя в управлении администратором, а затем вызвать интерфейс токена через имя пользователя и пароль, чтобы получить токен. .
Если вы забыли свой пароль для входа или не сохранили QR-код двухэтапной проверки, вы можете воспользоваться инструкциями ниже, чтобы сбросить пароль и отключить двухэтапную проверку.
1.jar метод установки, выполнить команду
java -jar /home/nginxWebUI/nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home — это каталог, в котором находится файл проекта, или каталог сопоставления при использовании Docker-контейнера.
--project.findPass — нужно ли печатать имя пользователя и пароль
После успешной операции вы можете сбросить и распечатать все имена пользователей и пароли, а также отключить двухэтапную проверку.
2. Способ установки Docker: сначала выполните команду для входа в Docker-контейнер, где {ID} — идентификатор контейнера.
docker exec -it {ID} /bin/sh
Выполните команду еще раз
java -jar /home/nginxWebUI.jar --project.findPass=true
После успешной операции вы можете сбросить и распечатать все имена пользователей и пароли, а также отключить двухэтапную проверку.