Премиальное программное обеспечение и практические уроки
Генерация визуального файла конфигурации Nginx, графический инструмент управления nginxWebUI
Конфигурация Nginx nginxWebUI Это визуальное графическое управлениеинструмент настройки nginxВы можете использовать веб-страницу для быстрой настройки различных функций nginx, включая переадресацию протокола http, переадресацию протокола tcp, обратный прокси-сервер, балансировку нагрузки, статический HTML-сервер, автоматическое применение сертификата ssl, его продление, настройку и т. д. После настройки вы можете сгенерироватьnginx.confфайл, а также может управлять nginx, чтобы использовать этот файл для запуска и перезагрузки, завершая замкнутый цикл графического управления nginx.
nginxWebUI также может управлять несколькими кластерами серверов nginx. Вы можете в любой момент одним щелчком мыши переключиться на нужный сервер для настройки nginx или синхронизировать конфигурацию сервера с другими серверами одним щелчком мыши для упрощения управления кластером.
Сам Nginx обладает сложным функционалом. Nginx Web UI не может охватить все функции Nginx, но он может обеспечить ежедневное использование и настройку Nginx 90%. Для элементов конфигурации Nginx, не охватываемых платформой, можно использовать пользовательские шаблоны параметров для создания уникальных параметров в файле конфигурации.
После развертывания этого проекта вам больше не придётся искать коды конфигурации в интернете для настройки nginx, а также вручную запрашивать и настраивать SSL-сертификаты. Вам нужно лишь добавлять, удалять, изменять и регистрировать этот проект, чтобы легко настроить и запустить nginx.
Сайт проекта Github:https://github.com/cym1102/nginxWebUI
Официальный сайт nginxWebUI:https://www.nginxwebui.cn/
Что такое Nginx
Nginx — это асинхронный веб-сервер, который также может использоваться в качестве обратного прокси-сервера, балансировщика нагрузки и HTTP-кэша. Программное обеспечение было разработано российским программистом Игорем Сысоевым и впервые выпущено публично в 2004 году. В 2011 году была создана одноимённая компания для предоставления услуг поддержки. 11 марта 2019 года компания F5 Networks приобрела Nginx за 670 миллионов долларов. Nginx — бесплатное программное обеспечение с открытым исходным кодом, распространяемое на условиях лицензии, аналогичной BSD.
официальный сайт nginx:https://nginx.org/
Конфигурация Nginx Техническая документация nginxWebUI
Этот проект представляет собой веб-систему на основе Solon, а база данных использует H2, поэтому не требует установки базы данных на сервер.
Эта система подаёт заявку на сертификаты через Let's Encrypt и использует скрипт acme.sh для автоматической подачи заявки и продления. Сертификаты с включённой функцией продления будут обновляться ежедневно в 2:00. Будут обновлены только сертификаты старше 60 дней. Выпуск сертификатов поддерживается только в Linux.
При добавлении поддержки переадресации TCP/IP может потребоваться перекомпиляция некоторых старых версий Nginx и установка модуля stream с помощью параметра --with-stream. Однако в Ubuntu 18.04 модуль stream уже включён в официальный репозиторий Nginx, поэтому перекомпиляция не требуется. Если настроена переадресация TCP, система автоматически импортирует файл конфигурации ngx_stream_module.so; в противном случае он не импортируется, что обеспечивает максимальную оптимизацию файла конфигурации Nginx.
инструкции по установке jar
Установите среду выполнения Java и nginx, взяв в качестве примера операционную систему Ubuntu:
Убунту
apt update apt install openjdk-11-jdk apt install nginx
Centos
ням установи java-11-openjdk ням установи nginx
Окна
Загрузите установочный пакет JDK: https://www.oracle.com/java/technologies/downloads/
Скачать nginx: http://nginx.org/en/download.html
- Настройка среды выполнения JAVA
- JAVA_HOME : каталог установки JDK
- Путь: каталог установки JDK\bin
- Перезагрузите компьютер.
Загрузите последнюю версию jar-пакета релиза nginxWebUI
Линукс
mkdir /home/nginxWebUI/ wget -O /home/nginxWebUI/nginxWebUI.jar http://file.nginxwebui.cn/nginxWebUI-3.4.4.jar
Окна
Загрузите напрямую с помощью браузера http://file.nginxwebui.cn/nginxWebUI-3.4.4.jar В D:/home/nginxWebUI/nginxWebUI.jar
Если есть новая версия, вам нужно только изменить версию в пути
Запустите программу nginxWebUI
Линукс
nohup java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
Окна
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=база данных паролей
Обратите внимание, что команда Linux заканчивается знаком &, что означает, что проект работает в фоновом режиме.
Инструкции по установке Docker
В рамках этого проекта был создан образ Docker, который поддерживает платформы x86_64/arm64/arm v7, а также включает в себя nginx и nginxWebUI для интегрированного управления и эксплуатации nginx.
Установите среду контейнера Docker:
Убунту
apt install docker.io
Centos
yum установить докер
Вытяните изображение
docker pull cym1102/nginxwebui:latest
Запустить контейнер
docker run -itd \ -v /home/nginxWebUI:/home/nginxWebUI \ -e BOOT_OPTIONS="--server.port=8080" \ --privileged=true \ --net=host \ cym1102/nginxwebui:latest
Примечание: При запуске контейнера используйте параметр --net=host для прямого подключения локального порта. Поскольку внутренний nginx может использовать любой порт, все локальные порты должны быть подключены.
Контейнер должен отображать путь /home/nginxWebUI:/home/nginxWebUI. Этот путь хранит все файлы данных проекта, включая данные, файлы конфигурации nginx, журналы, сертификаты и т. д. Этот каталог гарантирует сохранность данных проекта при обновлении образа. Обязательно сделайте резервную копию.
Параметр -e BOOT_OPTIONS можно использовать для заполнения параметров запуска Java, а также для изменения номера порта. --server.port задаёт порт. Если этот параметр не указан, порт по умолчанию — 8080.
По умолчанию журналы хранятся в /home/nginxWebUI/log/nginxWebUI.log.
Кроме того: при использовании docker-compose файл конфигурации выглядит следующим образом:
версия: "3.2" службы: nginxWebUi-server: образ: cym1102/nginxwebui:latest тома: - тип: bind источник: "/home/nginxWebUI" цель: "/home/nginxWebUI" среда: BOOT_OPTIONS: "--server.port=8080" привилегированный: true сетевой_режим: "host"
Примечания к компиляции
Компиляция и упаковка с использованием Maven
чистый пакет mvn
Создание образа с помощью Docker
docker build -t nginxwebui:latest .
Добавить запуск
Изменить конфигурацию сервиса
vim /etc/systemd/system/nginxwebui.service
[Unit] Описание=NginxWebUI После=syslog.target После=network.target [Service] Тип=simple Пользователь=root Группа=root Рабочий каталог=/home/nginxWebUI ExecStart=/usr/bin/java -jar /home/nginxWebUI/nginxWebUI.jar Перезапуск=always [Install] Требуется=multi-user.target
Затем выполните
systemctl daemon-reload systemctl enable nginxwebui.service systemctl start nginxwebui.service
Конфигурация Nginx, инструкции по использованию nginxwebui
Видеоурок: https://www.bilibili.com/video/BV18A4y1D7GZ
Адрес демонстрации: http://test.nginxwebui.cn:7070
Имя пользователя: администратор
Пароль: администратор
Открыть http://xxx.xxx.xxx.xxx:8080 Перейти на домашнюю страницу
Страница входа. При первом открытии вам будет предложено инициализировать учетную запись администратора.
После входа в систему вы можете добавлять и изменять учетные записи администраторов в панели управления администратором.
В конфигурации параметра http вы можете настроить проект http nginx и настроить переадресацию HTTP. Несколько распространённых конфигураций заданы по умолчанию, а другие необходимые конфигурации можно свободно добавлять, удалять, изменять и проверять. Установите флажок, чтобы включить отслеживание журналов и создание журналов.
В конфигурации параметров TCP вы можете настроить параметры потокового проекта nginx, но в большинстве случаев вам не нужно это настраивать.
В обратном прокси-сервере вы можете настроить функцию обратного прокси-сервера nginx, включить функцию SSL, загрузить файл PEM и файл ключа непосредственно с веб-страницы или использовать сертификат, примененный в системе, напрямую включить функцию http в https и включить протокол http2.
В разделе балансировки нагрузки можно настроить балансировку нагрузки nginx, которая является функцией восходящего потока данных. В разделе управления обратным прокси-сервером можно выбрать целевой прокси-сервер в качестве настроенной балансировки нагрузки.
При загрузке статического HTML-файла вы можете напрямую загрузить сжатый HTML-пакет по указанному пути. После загрузки вы можете использовать его непосредственно в обратном прокси-сервере, избегая необходимости загружать HTML-файлы в Linux.
В разделе управления сертификатами вы можете добавлять, выпускать и продлевать сертификаты. После включения запланированного продления система будет автоматически продлевать сертификаты, срок действия которых подходит к концу. Примечание: для выпуска сертификатов используется DNS-режим acme.sh, который необходимо использовать с aliKey и aliSecret от Alibaba Cloud. Сначала подайте заявку на aliKey и aliSecret.
Управление файлами резервных копий. Здесь вы можете увидеть версию истории резервного копирования nginx.cnf. Если в nginx возникнет ошибка, вы можете выполнить откат к определенной исторической версии.
Наконец, генерируется файл конфигурации, который можно редактировать вручную. После подтверждения корректности изменений локальный файл конфигурации можно перезаписать, выполнить проверку и перезапуск. Вы можете создать один файл конфигурации nginx.conf или разделить файлы конфигурации по доменным именам и поместить их в каталог conf.d.
Удаленное управление сервером: если у вас есть несколько серверов Nginx, вы можете развернуть Nginx Web UI на каждом из них, затем войти на один из них, добавить IP-адрес, имя пользователя и пароль других серверов в удаленное управление, и вы сможете управлять всеми серверами Nginx на одной машине.
Обеспечивает функцию синхронизации в один клик, которая позволяет синхронизировать конфигурацию данных и файлы сертификатов сервера с другими серверами.
Разработка интерфейса
Эта система обеспечивает вызов интерфейса http, откройте http://xxx.xxx.xxx.xxx:8080/doc.html, чтобы просмотреть страницу интерфейса smart-doc.
Вызов интерфейса должен добавить токен в заголовок HTTP-запроса. Чтобы получить токен, необходимо сначала открыть разрешение на вызов интерфейса пользователя в панели администратора, а затем вызвать интерфейс получения токена, указав имя пользователя и пароль.
Восстановить пароль
Если вы забыли пароль для входа или не сохранили двухэтапную аутентификацию, вы можете следовать следующему руководству, чтобы восстановить пароль и отключить двухэтапную аутентификацию.
1. Остановите веб-интерфейс nginx
pkill java
2. Запустите nginxWebUI.jar с параметром получения пароля.
java -jar nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home — каталог, в котором находятся файлы проекта
--project.findPass, следует ли выводить имя пользователя и пароль
После успешной операции все имена пользователей и пароли можно распечатать, а двухэтапную аутентификацию можно отключить.
Рекомендуемый OpenStar